このトピックでは、PL オブジェクトのコンパイルとデバッグについて説明します。
背景情報
PL は Procedural Language の略で、SQL の拡張機能です。 PL は、SQL 文に基づくプログラミング言語の特性を取り入れ、PL コード内でデータ操作とクエリ文を編成し、ロジックの判断とループを使用して複雑な機能を実装します。
PL を使用すると、高度な機能を備えたさまざまなプログラムをプログラミングし、ビジネスロジックをデータベースにカプセル化できます。 これにより、抽象化とセキュリティが向上し、ネットワークの相互作用が減少し、呼び出しが高速化され、パフォーマンスが向上します。
PL プログラム開発は、データベースサービス開発者にとって重要な日常業務です。 SQL 文のサポートモジュールと同様に、PL デバッグモジュールも非常に重要です。 したがって、開発者はプログラミング中に PL 開発エリアとデバッグ機能を必要とします。
PL 文を使用して、関数、ストアドプロシージャ、パッケージ、トリガーなどのデータベースオブジェクトを作成できます。
OceanBase 開発者センター ( ODC ) V2.2.0 以降では、PL オブジェクトと匿名ブロックの作成、コンパイル、実行、およびデバッグを行うことができます。 匿名ブロックウィンドウの編集セクションで PL 文をコンパイルできます。 作成された PL オブジェクトを編集およびデバッグすることもできます。 より良いエクスペリエンスを得るには、最新バージョンの ODC を使用することをお勧めします。
GSH データベースにPROC_VARCHAR2という名前のストアドプロシージャを作成するとします。
このトピックで使用されているデータは例です。 必要に応じて、実際のデータに置き換えることができます。
前提条件
次の表に、ODC の PL サポート情報を示します。
機能
サポートされているオブジェクト
サポートされているデータソース
サポートされているバージョン
コンパイル
関数、ストアドプロシージャ、およびパッケージ
OceanBase Oracle および OB Cloud Oracle
V2.2.7x および V3.0.0 以降
デバッグ
関数、ストアドプロシージャ、および匿名ブロック
OceanBase Oracle
V3.2.3 以降
実行
関数とストアドプロシージャ
OceanBase Oracle、OB Cloud Oracle、OceanBase MySQL、OB Cloud MySQL
V2.0.x 以降
関数とストアドプロシージャ
MySQL
V5.7
実行
パッケージと匿名ブロック
OceanBase Oracle および OB Cloud Oracle
V2.0.x 以降
次のルールに注意してください。
データソースが OceanBase クラスタインスタンスの場合、OceanBase Database Proxy ( ODP ) を使用して接続する必要があります。 このインスタンスはデバッグをサポートしていません。
匿名ブロックウィンドウは、OceanBase Oracle および OB Cloud Oracle データソースに対してのみ表示されます。
V3.2.3 より前のバージョンの ODC は、高度な RISC マシン ( ARM ) アーキテクチャでのデバッグをサポートしていません。
PL のコンパイル
SQL ウィンドウでストアドプロシージャを作成します。

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 文をコンパイルし、コンパイル結果を表示します。

PL のデバッグ
SQL 開発ウィンドウの左側のナビゲーションウィンドウで、ストアドプロシージャのリストにあるストアドプロシージャ
PROC_VARCHAR2の横にある [詳細] アイコンをクリックし、ドロップダウンリストから [デバッグ] を選択します。
パラメーターを設定し、 [OK] をクリックします。
重要OceanBase Database V4.0.0 以降では、デバッグする前にデバッグ権限を取得する必要があります。 構文は次のとおりです。
GRANT DEBUG CONNECT SESSION TO GSH; GRANT DEBUG ANY PROCEDURE TO GSH;
デバッグページに移動し、バッチ実行 をクリックして PL 文を実行します。
