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