oracle procedure儲存過程(pl/sql)_使用declare cursor_begin end巢狀
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
80 dba beijing
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select * from tmp_dept;
未選定行
SQL> declare
2 cursor cur_dept is select deptno from dept;
3 begin
4 for dept_rec in cur_dept loop
5 insert into tmp_dept(deptno) values(dept_rec.deptno);
6 end loop;
7 end;
8 /
PL/SQL 過程已成功完成。
SQL> select * from tmp_dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10
20
30
40
80
SQL> truncate table tmp_dept;
表被截斷。
SQL> create or replace procedure proc_tmp_dept
2 as
3 begin
4 declare --此declare不能少,pl/sql儲存過程begin-end可以含多層,
--即可以巢狀多次
5 cursor cur_dept is select deptno from dept;
6 begin --此begin不能少,不寫此begin與對應的end(即for loop程式碼塊不用begin end括起來,會報編譯錯誤)
7 for dept_rec in cur_dept loop
8 insert into tmp_dept(deptno) values(dept_rec.deptno);
9 end loop;
10 end;
11 end;
12 /
過程已建立。
SQL> select * from tmp_dept;
未選定行
SQL> exec proc_tmp_dept;
PL/SQL 過程已成功完成。
SQL> commit;
提交完成。
SQL> select * from tmp_dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10
20
30
40
80
SQL>
DEPTNO DNAME LOC
---------- -------------- -------------
80 dba beijing
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> select * from tmp_dept;
未選定行
SQL> declare
2 cursor cur_dept is select deptno from dept;
3 begin
4 for dept_rec in cur_dept loop
5 insert into tmp_dept(deptno) values(dept_rec.deptno);
6 end loop;
7 end;
8 /
PL/SQL 過程已成功完成。
SQL> select * from tmp_dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10
20
30
40
80
SQL> truncate table tmp_dept;
表被截斷。
SQL> create or replace procedure proc_tmp_dept
2 as
3 begin
4 declare --此declare不能少,pl/sql儲存過程begin-end可以含多層,
--即可以巢狀多次
5 cursor cur_dept is select deptno from dept;
6 begin --此begin不能少,不寫此begin與對應的end(即for loop程式碼塊不用begin end括起來,會報編譯錯誤)
7 for dept_rec in cur_dept loop
8 insert into tmp_dept(deptno) values(dept_rec.deptno);
9 end loop;
10 end;
11 end;
12 /
過程已建立。
SQL> select * from tmp_dept;
未選定行
SQL> exec proc_tmp_dept;
PL/SQL 過程已成功完成。
SQL> commit;
提交完成。
SQL> select * from tmp_dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10
20
30
40
80
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-713948/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PL/SQL 05 儲存過程 procedureSQL儲存過程
- Oracle Pl/SQL 之 儲存過程OracleSQL儲存過程
- oracle pl/sql儲存過程內外層遊標cursor巢狀引數化示例OracleSQL儲存過程巢狀
- SQL 建立儲存過程PROCEDURESQL儲存過程
- [Procedure]Oracle之分頁儲存過程Oracle儲存過程
- Oracle 基礎 ----procedure(儲存過程)Oracle儲存過程
- 儲存過程中巢狀事務儲存過程巢狀
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- MYsql-儲存過程-遊標的巢狀MySql儲存過程巢狀
- oracle儲存過程(procedure)中執行動態SQL小記Oracle儲存過程SQL
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- PL/SQL中動態掉用儲存過程SQL儲存過程
- PL/SQL 中的儲存過程與函式SQL儲存過程函式
- pl/sql儲存過程優化一例SQL儲存過程優化
- SQL Server的巢狀儲存過程中使用同名的臨時表怪像淺析SQLServer巢狀儲存過程
- mysql 儲存過程 procedure 批次建表MySql儲存過程
- oracle plsql儲存過程_while loop_end loop_exitOracleSQL儲存過程WhileOOP
- oracle procedure 儲存過程輸入及輸出in out示例Oracle儲存過程
- oracle中取得儲存過程、函式等pl sql原始碼的方法Oracle儲存過程函式SQL原始碼
- pl/sql developer除錯儲存過程報錯處理SQLDeveloper除錯儲存過程
- mysql檢視儲存過程show procedure status;MySql儲存過程
- MySQL入門--儲存過程(PROCEDURE)和儲存函式(FUNCTION)MySql儲存過程儲存函式Function
- Oracle SQL Developer Debug儲存過程OracleSQLDeveloper儲存過程
- oracle動態sql儲存過程示例OracleSQL儲存過程
- oracle 儲存過程遊標的使用Oracle儲存過程
- ORACLE PL/SQL 物件、表資料對比功能儲存過程簡單實現OracleSQL物件儲存過程
- Oracle儲存過程Oracle儲存過程
- SQL儲存過程示例SQL儲存過程
- SQL Server 儲存過程SQLServer儲存過程
- 【SQL Server】--儲存過程SQLServer儲存過程
- mysql儲存過程procedure、函式function的用法MySql儲存過程函式Function
- SQL Server-儲存過程(Procedure),帶入引數和出引數SQLServer儲存過程
- PLSQL Language Referenc-PL/SQL子程式-巢狀、包和獨立的儲存子程式SQL巢狀
- oracle procedure儲存過程輸入引數用於sql like模糊匹配2演算法Oracle儲存過程SQL演算法
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- ms sql server儲存過程目前使用模板SQLServer儲存過程
- SQL Server儲存過程中raiserror的使用SQLServer儲存過程AIError