Oracle 動態SQL返回單條結果和結果集

2021-05-09 12:08:58 字數 1214 閱讀 3371

oracle 動態sql返回單條結果和結果集

1. ddl 和 dml

/**//*** ddl ***/

begin

execute immediate 'drop table temp_1';

execute immediate 'create table temp_1(name varchar2(8))';

end;

/**//*** dml ***/

declare

v_1 varchar2(8);

v_2 varchar2(10);

str varchar2(50);

begin

v_1:='測試人員';

v_2:='北京';

str := 'insert into test (name ,address) values (:1, :2)';

execute immediate str using v_1, v_2;

commit;

end;

2. 返回單條結果

declare

str varchar2(500);

c_1 varchar2(10);

r_1 test%rowtype;

begin

c_1:='測試人員';

str:='select * from test where name=:c where rownum=1';

execute immediate str into r_1 using c_1;

dbms_output.put_line(r_1.name||r_1.address);

end ;

3. 返回結果集

create or replace package pkg_test as

/**//* 定義ref cursor型別

不加return型別,為弱型別,允許動態sql查詢,

否則為強型別,無法使用動態sql查詢;

*/ type myrctype is ref cursor;

--函式申明

function get(intid number) return myrctype;

end pkg_test;

/ return rc;

end get;

end pkg_test;

/

Oracle 動態SQL返回單條結果和結果集

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

Oracle 動態SQL返回單條結果和結果集

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

動態SQL中返回數值

最近在做乙個paypal抓取資料的程式,由於所有欄位和paypal之間存在對應對映的關係,所以所有的sql語句必須得拼接傳到儲存過程裡去執行,alter proc dbo sp common paypal addinfo paypalsql varchar max 不包含使用者表的paypalsql...