oracle execute immediate動態sql組合執行comment小記
create or replace procedure proc_auto_comment
as
v_number pls_integer;
v_repl_string varchar2(100);
v_sql varchar2(4000);
v_sqlerrm varchar2(1000);
begin
v_number:=2;
for i in 1..v_number loop
--因為動態sql如果出錯程式碼會一直hang在哪兒,為了快速診斷是什麼原因,新增異常
begin
execute immediate 'create table T_COMMENT_'||to_char(i)||'
(
A INTEGER,
B INTEGER
)';
exception when others then
v_sqlerrm:=sqlerrm;
dbms_output.put_line(v_sqlerrm);
exit;
end;
v_repl_string:='T_COMMENT_'||to_char(i);
begin
--暫時發現合併多個comment子句如用execute immediate會報無效字元,先分開編寫吧
v_sql:='comment on column '||v_repl_string||'.A is '||''''||'這是a'||''''||';'||chr(10)||chr(13)|| 'comment on column '||v_repl_string||'.B is '||''''||'這是b'||''''||';';
execute immediate v_sql;
exception when others then
v_sqlerrm:=sqlerrm;
dbms_output.put_line(v_sqlerrm);
exit;
end;
end loop;
end;
as
v_number pls_integer;
v_repl_string varchar2(100);
v_sql varchar2(4000);
v_sqlerrm varchar2(1000);
begin
v_number:=2;
for i in 1..v_number loop
--因為動態sql如果出錯程式碼會一直hang在哪兒,為了快速診斷是什麼原因,新增異常
begin
execute immediate 'create table T_COMMENT_'||to_char(i)||'
(
A INTEGER,
B INTEGER
)';
exception when others then
v_sqlerrm:=sqlerrm;
dbms_output.put_line(v_sqlerrm);
exit;
end;
v_repl_string:='T_COMMENT_'||to_char(i);
begin
--暫時發現合併多個comment子句如用execute immediate會報無效字元,先分開編寫吧
v_sql:='comment on column '||v_repl_string||'.A is '||''''||'這是a'||''''||';'||chr(10)||chr(13)|| 'comment on column '||v_repl_string||'.B is '||''''||'這是b'||''''||';';
execute immediate v_sql;
exception when others then
v_sqlerrm:=sqlerrm;
dbms_output.put_line(v_sqlerrm);
exit;
end;
end loop;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-751203/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle動態執行語句(Execute Immediate)Oracle
- 動態 SQL、EXECUTE IMMEDIATE、using、into、returningSQL
- EXECUTE IMMEDIATE動態SQL的使用總結SQL
- 複習execute immediate動態sql語法SQL
- EXECUTE IMMEDIATE 呼叫動態過程
- PLSQL Language Referenc-PL/SQL動態SQL-本地動態SQL(EXECUTE IMMEDIATE語句)SQL
- EXECUTE IMMEDIATE dynamic sql in procedureSQL
- oracle儲存過程(procedure)中執行動態SQL小記Oracle儲存過程SQL
- execute immediate 語法小結
- PL/SQL 中 execute immediate,select 語句沒有into 執行未報錯SQL
- 儲存過程執行EXECUTE IMMEDIATE沒反應儲存過程
- execute immediate的簡單用法(oracle)Oracle
- PL/SQL執行動態SQLSQL
- 【SQL】Oracle避免動態SQL,提高過程執行效率SQLOracle
- oracle動態sql執行table表中儲存的sqlOracleSQL
- Oracle EXECUTE IMMEDIATE語句裡面的引號處理Oracle
- Mybatis 動態執行SQL語句MyBatisSQL
- EXECUTE IMMEDIATE 儲存過程中 許可權不足及EXECUTE IMMEDIATE的除錯避坑儲存過程除錯
- 儲存過程中慎用 execute immediate儲存過程
- SQL SERVER 中構建執行動態SQL語句SQLServer
- Oracle 動態SQLOracleSQL
- [ORACLE] SQL執行OracleSQL
- Oracle動態執行表不可訪問Oracle
- Oracle手動固定SQL執行計劃OracleSQL
- 8086執行組合語言組合語言
- Oracle 執行計劃 分析和動態取樣Oracle
- Hint 組合執行步驟 - 分開執行, 互不影響
- Oracle sql執行計劃OracleSQL
- AUTOCAD——拉伸陣列組合動態塊陣列
- 動態規劃-硬幣組合數目動態規劃
- 動態SQL應用小列子 (轉)SQL
- 如何偵查SQL執行狀態SQL
- Oracle SQL_Profile手動生成及繫結sql執行計劃OracleSQL
- Oracle - 執行過的SQL、正在執行的SQL、消耗資源最多的SQLOracleSQL
- oracle comment on的用法Oracle
- oracle查詢sql執行耗時、執行時間、sql_idOracleSQL
- oracle procedure plsql 動態sql之動態傳遞表OracleSQL
- 動態規劃-最少硬幣組合問題動態規劃