本記事では、SQLウィンドウでPLステートメントをコンパイルする方法について説明します。
背景
PL(Procedural Language)は手続き型言語であり、SQLステートメントの拡張です。PLは通常のSQLステートメントにプログラミング言語の特性を加え、データ操作とクエリステートメントをPLコードの手続き的なコード内に組織し、論理判断やループなどの操作を通じて複雑な機能を実現します。
PLを使用することで高度な機能を備えたプログラムを記述でき、業務ロジックをデータベース内部にカプセル化して、より高い抽象性と安全性を提供すると同時に、ネットワークのやり取りを削減し、呼び出し速度を向上させることで、全体のパフォーマンスを高めることができます。
PLプログラムの開発作業は、データベースサービス開発者にとって重要な日常業務です。SQLステートメントのサポートモジュールと同様に、PLのデバッグモジュールも非常に重要な機能です。そのため、プログラミングの過程で、開発者にはPL開発エリアとデバッグ機能が必要です。
PLステートメントは、関数、ストアドプロシージャ、パッケージ、トリガーなどのデータベースオブジェクトの作成に使用できます。
SQLコンソールは、PLオブジェクトと匿名ブロックの作成、コンパイル、実行、デバッグなどの機能をサポートしています。ユーザーは匿名ブロックウィンドウの編集エリアでPLステートメントをコンパイルできるほか、作成したPLオブジェクトに対して編集やデバッグなどの操作を行うことができます。
このドキュメントでは、OceanBase Oracleタイプのストアドプロシージャを作成する例として、データベースODC_TESTにストアドプロシージャPROC_VARCHAR2を作成します。
前提条件
SQLコンソールにログインするための、現在のテナントのデータベースアカウントとパスワードを所有していること。
SQLコンソールがPLコンパイル関数/ストアドプロシージャ/パッケージをサポートしていること。OceanBase Oracle/OB Cloud OracleのバージョンがV2.2.7x、V3.0.0以降であることを確認してください。
SQLコンソールがPL実行関数/ストアドプロシージャ/パッケージ/匿名ブロックをサポートしていること:
PL実行関数/ストアドプロシージャの場合、OceanBase Oracle/OB Cloud Oracle/OceanBase MySQL/OB Cloud MySQLのバージョンがV2.0.x以降、MySQLのバージョンがV5.7であることを確認してください。
PL実行パッケージ/匿名ブロックの場合、OceanBase Oracle/OB Cloud OracleのバージョンがV2.0.x以降であることを確認してください。
注意
- データソースがOceanBaseタイプで、OBProxy経由でのみ接続可能な場合、そのインスタンスはデバッグをサポートしません。
- 匿名ブロックウィンドウは、OceanBase Oracle/OB Cloud Oracleデータソースでのみ提供されます。
PLコンパイル
SQLコンソールにログインする後、SQLウィンドウに以下のステートメントを入力してストアドプロシージャ
PROC_VARCHAR2を作成します。CREATE OR REPLACE PROCEDURE PROC_VARCHAR2(p1 in VARCHAR2, p2 out VARCHAR2, p3 in out VARCHAR2) as v1 varchar2(64) := 'hello,oceanbase'; begin dbms_output.put_line(p1); dbms_output.put_line(p3); p2 := 'hello,odc'; end;
SQLウィンドウの左側のナビゲーションペインで、作成したストアドプロシージャ
PROC_VARCHAR2を検索し、
> コンパイル を選択します。
PLステートメントをコンパイルし、コンパイル結果を確認します。
