Oracle動態sql語句

2021-10-06 19:40:35 字數 2529 閱讀 1009

在pl/sql程式開發中,可以使用dml語句和事務控制語句,但是還有很多語句(比如ddl語句)不能直接在pl/sql中執行。

這些語句可以使用動態的sql來實現。動態sql是指在pl/sql塊編譯sql語句是不確定的。

--動態sql執行ddl語句

drop

procedure procedure5;

create

orreplace

procedure procedure5(

tablename in varchar2,

column1 in varchar2,

datatype1 in varchar2,

column2 in varchar2,

datatype2 in varchar2)as

existscount number:=0;

str_sql varchar2(

500)

;begin

begin

execute immediate 'drop table '

|| tablename;

exception when others then

null

;end

;

str_sql:=

'create table '

|| tablename ||

'('|| column1 ||

' '|| datatype1 ||

','|| column2 ||

' '|| datatype2 ||

')';

execute immediate str_sql;

--執行動態ddl語句

-- execute immediate 'truncate table ***xx'

-- execute immediate 'alter trigger ***xx disable'

exception

when others then raise;

end;

測試如圖:

測試如圖:

Oracle動態SQL語句

在使用odp.net進行oracle程式設計時,有時候sql語句非常複雜,需要採用動態構造查詢語句的情況,有兩種方法可以構造動態的sql語句,並執行返回結果集。1 在資料訪問層構造sql語句 例如下面的語句,將構造完整的sql語句賦值給commandtext,再傳遞到資料庫進行執行,返回結果集。lo...

ORACLE 動態執行SQL語句

oracle 動態sql oracle 動態sql有兩種寫法 用 dbms sql 或 execute immediate,建議使用後者。試驗步驟如下 1.ddl 和 dml ddl begin execute immediate drop table temp 1 execute immediat...

ORACLE 動態執行SQL語句

oracle 動態sql oracle 動態sql有兩種寫法 用 dbms sql 或 execute immediate,建議使用後者。試驗步驟如下 1.ddl 和 dml sql ddl begin execute immediate drop table temp 1 execute imme...