PL SQL 動態SQL 游標

2021-08-31 03:15:47 字數 1363 閱讀 8442

1. 使用動態sql可以在依賴物件不存在時建立子程式

2. 動態sql主要利用execute immediate語句執行dml、ddl、dcl等語句操作

3. 如果使用了繫結變數,則必須在execute immediate中使用using字句設定所需要的繫結變數

4. 使用returning或return語句可以接收查詢或更新後的返回結果

4. 使用批處理可以一次性將資料庫之中取回的多個資料儲存在集合裡,或者使用forall將多個繫結引數設定到動態sql之中

在游標中使用動態sql

declare 

cur_emp sys_refcursor; --游標變數

v_emprow emp%rowtype;

v_deptno emp.deptno%type := 10;

begin

open cur_emp for 'select * from emp where deptno - :dno'

using v_deptno;

loop

fetch cur_emp into v_emprow;

exit when cur_emp%notfound;

dbms_output.put_line ('雇員姓名:'||v_emprow.name||',雇員職位:'||v_emprow.job);

end loop;

close cur_emp;

end;

/

declare 

cur_emp sys_refcursor; --定義游標變數

type emp_index is table of emp%rowtype index by pls_intrger; --索引表

v_emprow emp_index;

v_deptno emp.deptno%type := 10;

begin

open cur_emp for 'select * from emp where deptno - :dno'

using v_deptno;

fetch cur_emp bulk collect into v_epmrow; --資料全部取出

close cur_emp;

for x in 1..v_emprow.count

loop

dbms_output.put_line ('雇員編號:'||v_emprow(x).empno||',姓名:'||v_emprow(x).ename||',職位:'||v_emprow(x).job);

end loop;

end;

/

PL SQL中使用DML 游標 動態SQL

先申明我不是牛x,所有有錯的地方,希望廣大讀友能提醒俺一下!1.兩個常用異常處理 declare v empno emp.empno type v ename emp.ename type begin v empno 請輸入工號 select ename into v ename from emp ...

pl sql游標 PL SQL游標 1

pl sql游標 游標 隱式游標 sql返回單行。由oracle server建立。顯式游標 sql重新調整多個記錄行。由使用者建立。游標生命週期 宣告 開啟 獲取 檢查最後一條記錄 關閉 基本語法 declare cursor cursorname param1,param2,is select ...

在PL SQL使用游標獲取資料及動態SQL

1.游標概念 當在pl sql塊中執行dml 增刪改 時,oracle會為其分配上下文區 context area 游標是指向上下文區的指標 2.游標分類 a.隱式游標 a.在pl sql中使用dml語句時自動建立隱式游標 b.隱式游標自動宣告 開啟和關閉,其名為 sql c.通過檢查隱式游標的屬性...