SQL
今週、久しぶりにAS400でストアド・プロシージャを定義しました。 これまでは、シンプルRPGLEをストアド化するばかりでしたが、今回はSQLRPGLEをストアド化してみたのです。 そこでの学びをまとめておきます。 まず、今回発生したエラーについてのJOBJOGの中…
もう、何年も愛用させていただいている「A5:SQL Mk-2」。 a5m2.mmatsubara.com 用途は、ほとんどが「SQL→EXCEL発行」なのですが、データ集計やアプリケーションのテスト時などで、「これでもか!」というほど使い倒しております。 1日1回は、使っています…
久しぶりに、DB2 for i ネタになります。 A5:SQL Mk-2とは? 最高のSQLクライアントツールに、「A5:SQL Mk-2」というものがございます。 a5m2.mmatsubara.com ODBCドライバーを経由して、DB2 for iの操作も可能! ホント、軽量でして、毎日愛用させていただ…
業務の中で、下記のような集計処理を行う機会があり、 少しハマってしまったので、公開しておきます。 ちなみにRDBは、DB2 for IBM i (V7R3M0) になります。 やりたいことは、テーブルAを集計した結果とテーブルBを集計した結果を統合したものを さらにグル…
久しぶりにSQLネタです。 SQLは「基本的なことができればOK!」と思っています。 その理由は、SQLを極めれば何でもできてしまうので、気を抜くと確実に「スパゲティSQL」を増殖してしまう恐れがあるから。 しかしながら、時々「こんなことができないかなぁ~…
概要 前回の続きです。 tigertaizo.hatenablog.com テーマは「スキーマ変更した後、Viewはどうなるか?」です。 DB2 for iでの動作確認 前回同様、実際に「手を動かして試す」ことにしました。 検証用テーブルの準備 今回は「果物テーブル」を作ってみました…
概要 ビューとは? DB2 for iでの動作確認 事前準備 ビューの作成 ビューの調査 ビューを使用する ビューSQLの確認 ビューの書き込みテスト DSPDBRコマンドで確認 WRKOBJコマンドで確認 マテリアライズドビュー まとめ 概要 今回、RDBのビューを検証すること…
完全に自分用の備忘録です。 先日、SQL の ORDER BY句で、オリジナルの順序で並べたい機会がありました。 そもそも、そういう機会があることがイレギュラーだとわかってはいるのですが、やりたいものは仕方ありません。 すると、チーム・メンバーが、下記の…
久しぶりのAS400のネタです。 業務上で、テーブル1とテーブル2の集計結果を照合して「金額などが合致しているか?」を確認したいケースがたまにあります。 シンプルなテーブル構成であれば、SQL文1本で照合できるのですが、複数のテーブルを参照したり、…
久しぶりにAS400のSQLRPGLEネタです。 SQLのINSERT文、UPDATE文、DELETE文実行後に、どうやって結果レコード数を取得するのか? という疑問が湧きました。 Javaであれば、下記のようにSQL実行結果の戻り値で結果レコード件数を取得できるのですが・・・。 in…
昨日、同僚から教えていただいたネタをひとつご紹介します。 私は、知らない機能だったので、衝撃でした。 SQLがよくわかっていなかった10年前に知りたかった機能でしたよ!!! と、こぼしていても始まらないので、さっそく試してみました。 QRYプログラム…
「DB2/400」という呼び方が、古いものかもしれません。今なら、「DB2 for i」なのでしょう。 DB2 for iをAP Server等のリモートで操作する場合、DB側のシステム時間を使う必要があったので、サンプルを書いてみました。 参考にさせていただいたサイトは、こ…
AS400が複数台存在する場合に、リモートのRDBSへアクセスすることが可能です。 簡単ですが、その方法をまとめます。 準備作業 (1) ローカル:遠隔RDBの登録 WRKRDBDIREコマンドでリモートAS400のRDBを登録します。 リレーショナル・データベース・ディレクトリー 項目の処理 位…
SQLカーソル処理にて、集計処理させるプログラムについてです。 はっきり言って、SQLは超・便利です。 CRUD処理はもちろん、複雑な照会であっても、副問い合わせなどで簡単にデータの取り出しが可能です。 ただ、複雑なSQL文は、解読するのに一苦労します(…
RPGにてシンプルなSQL文を書く機会があったので、簡単なサンプルを書いてみました。 SQLRPGLEサンプル D MAIN PR EXTPGM('SAMPLE28') D 7P 0 D* D MAIN PI D P@QCNT 7P 0 D* D C@QCNT S 7P 0 D* D******************************************************* D…
ストアドプロシージャとは? ストアドプロシージャ (stored procedure) とは、データベースに対する一連の処理をまとめた手続きにして、リレーショナルデータベース管理システムに保存(永続化)したものです。 ストアドプロシージャの作成(プログラム呼出…
概要 AS400のDB2/400というDBは、容易にフィールドを追加したり、変更したりするのが非常に面倒なように思います。なので、現行のテーブルには予備フィールドがあったりするわけですが、現在では桁区切り指定で使用していたりします。(予備フィールドの3〜…