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を参照してください。