Oracle 動的SQLをOBで実行してみよう

 2019.08.13  株式会社システムインテグレータ

わざわざプロシージャやファンクションを作るほどではないが動的なSQLを実行したい、と思ったことはありませんか?
実は、SI Object Browser(以下、OB)では動的SQLも実行できるんです!

今回は、動的SQLを実際に動作させる方法をご紹介します。

いまさら聞けない Oracleの基本 [初級編]

事前準備は不要

動的SQLを動作させる方法を紹介する、と記載しましたが設定などの準備は必要ありません。
OBのSQL実行画面でPL/SQLを記述すればSQLを動的に組み立て、実行することが可能です。
ここではPL/SQLに関する説明は割愛しますので、学習/復習してみてください。

その① 動的なデータを投入してみる

例として、「T2」テーブルに連番データを作成してみましょう。
PL/SQLで以下のサンプルを記述してみました。

Oracle 動的SQLをOBで実行してみよう 1

- 図1. SQL実行画面でPL/SQLを記述 -

PL/SQLを記述したら、実行ボタンを押下します。

Oracle 動的SQLをOBで実行してみよう 2

いまさら聞けない Oracleの基本 [中級編]
新規CTA

- 図2. 実行結果 -

実行結果には「対象:1レコード」と表示されますが、これはPL/SQLを1件実行したということで表示される内容となります。T2テーブルを確認してみると、連番データが登録されていることがわかります。

Oracle 動的SQLをOBで実行してみよう 3

- 図3. 動的SQLによる連番データ -

OBのデータ生成ツール機能で同様の操作を行うことが可能ですが、ログテーブルのテスト等でサッとデータを作成したい場合などには有効な手段になるかと思います。

その② 動的なクエリを実行してみる

もう一つ、クエリ自体を動的に作成する例としてテーブルを定義してみましょう。
以下は同じカラム定義のテーブルを100件定義するサンプルとなっています。

Oracle 動的SQLをOBで実行してみよう 4

- 図4. 動的にクエリを実行 -

この動的SQLにより、テーブルを100件作成できることが確認できました。

Oracle 動的SQLをOBで実行してみよう 5

- 図5. 動的SQLによる連番テーブル -

まとめ

いかがでしたか?
今回は動的SQLをOBで実行する方法をご紹介しました。

紹介したサンプルは単純な連番データ/テーブル作成となりますが、条件分岐やデータベースのデータ参照を組み合わせることでより柔軟な動的SQLを記述することもできます。
ぜひご活用ください!

いまさら聞けない Oracleの基本

RELATED POST関連記事


RECENT POST「【OBトコ】DBの勉強」の最新記事


【OBトコ】DBの勉強

データベースのスキーマを理解する

【OBトコ】DBの勉強

データベース別インスタンスの関係性

【OBトコ】DBの勉強

ビューとマテリアライズド・ビューの違いを理解する

【OBトコ】DBの勉強

Oracle 表領域を拡張してみよう

Oracle 動的SQLをOBで実行してみよう
新規CTA