0
A
答えて
2
execute immediate 'plsql code'
とexecute immediate 'sql'
間のdiffernceは、SQL、Oracleは、実際のbindesを使用すると、あなたが正しい順序で一度にそれを指定することができ、そこがrepetedされている場合、それはすべてのバインドを置き換えます/ダイナミックPLでは、あります。 sqlを使用すると、すべてのバインドをrepesする代わりにspesifyする必要があります。
declare
l_sql varchar2(4000) := 'select :a from dual union all select :a from dual';
l_pl_sql varchar2(4000) := 'begin dbms_output.put_line(:a); dbms_output.put_line(:a); end;';
type t_tab_str is table of varchar2(4000);
l_res t_tab_str ;
begin
execute immediate l_sql bulk collect into l_res using '1','2';
for i in 1.. l_res.last loop
dbms_output.put_line(l_res(i));
end loop;
execute immediate l_pl_sql using '1';
end;
あなたはDBMS_SQLを使用することができ、その機能バインド
declare
l_sql varchar2(4000) := 'select :a from dual union all select :a from dual';
type t_tab_str is table of varchar2(4000);
l_res t_tab_str ;
l_sql_id number;
l_ret number;
type curtype is ref cursor;
l_cursor curtype ;
begin
dbms_sql.parse(l_sql_id ,l_sql,dbms_sql.native);
dbms_sql.bind_variable(l_sql_id,'a','1');
l_ret := dbms_sql.execute(l_sql_id);
l_cursor := dbms_sql.to_refcursor(l_sql_id);
fetch l_cursor bulk collect into l_res;
for i in 1.. l_res.last loop
dbms_output.put_line(l_res(i));
end loop;
end;
1
は、あなたがの後にあるUSING
キーワードが何であるか私には思える何かのように言うことができる方法があります。
以下は、Oracleのマニュアルの例です。
DECLARE
plsql_block VARCHAR2(500);
new_deptid NUMBER(4);
new_dname VARCHAR2(30) := 'Advertising';
new_mgrid NUMBER(6) := 200;
new_locid NUMBER(4) := 1700;
BEGIN
-- Dynamic PL/SQL block invokes subprogram:
plsql_block := 'BEGIN create_dept(:a, :b, :c, :d); END;';
/* Specify bind arguments in USING clause.
Specify mode for first parameter.
Modes of other parameters are correct by default. */
EXECUTE IMMEDIATE plsql_block
USING IN OUT new_deptid, new_dname, new_mgrid, new_locid;
END;
/
https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/dynamic.htm
関連する問題
- 1. plsqlの動的%rowtype変数
- 2. 法的なC#変数名ではない名前へのバインド
- 3. バインド変数名を動的に生成
- 4. 名前で自動的にビューをバインド
- 5. 名前インスタンス変数を動的ルビー
- 6. php - 動的変数名を前にチェック
- 7. PHP変数のSQL動的列名?
- 8. SQLの動的列の名前句
- 9. Oracle SQL DeveloperなどのGUIからのPLSQL開発者バインド変数
- 10. 変数DisplayAttributeの名前、動的表示名
- 11. PLSQL - 動的SQLでカーソルを使用できません
- 12. MySQLのストアド関数 - 動的/変数のテーブルとカラムの名前
- 13. PLSQL変数
- 14. Javascriptオブジェクト:動的変数名?
- 15. Javascriptの動的変数名
- 16. 変数名を動的
- 17. 動的変数名javascript MVC
- 18. Rubyの動的変数名
- 19. USING句PLSQLの動的パラメータ
- 20. PLSQL動的な挿入
- 21. oracle plsqlの動的なgoto
- 22. という名前のスコープ - バインド変数の数が間違っ
- 23. Coldfusion - 構造体と動的変数の名前
- 24. 変数に動的に名前を付ける?
- 25. 数値の中にPythonキーの名前を動的に変更
- 26. ツリーの動的変数の名前付け[Python]
- 27. HTML5/JavaScript:localStorageに動的変数の名前と値を格納
- 28. SQL動的列名
- 29. PHP:変数の名前を動的に変更できますか?
- 30. oracle sqlのstring変数の名前変数。#
'私は、SQL文のどのようなdynamically' SQL文を実行したいですか? –