DBMS_SQL システムパッケージは、SQLカーソル番号と呼ばれるエンティティを定義しています。SQLカーソル番号は整数であるため、呼び出しの境界を越えて渡したり格納したりすることができます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
以下のいずれかの条件を満たす場合は、DBMS_SQL を使用して動的SQLステートメントを実行する必要があります:
SELECTリストの内容は実行時にのみ判明します。SELECTまたはDMLステートメントでバインドする必要があるプレースホルダーは実行時にのみ判明します。ストアドプロシージャが
DBMS_SQL.RETURN_RESULTステアドプロシージャを通じて暗黙的にクエリ結果を返すことを希望します(OUT REF CURSORパラメータではなく)。
以下の場合は、DBMS_SQL パッケージではなく動的SQLを使用する必要があります:
動的SQLステートメントが行をレコードに取得します。
INSERT、UPDATE、DELETE、MERGE、または単一行SELECTステートメントで動的SQLを宣言した後、SQLカーソル属性%FOUND、%ISOPEN、%NOTFOUND、または%ROWCOUNTを使用する場合。
DBMS_SQL システムパッケージの詳細については、DBMS_SQLを参照してください。