sql> set severoutput on;
sp2-0735: unknown set option beginning "severoutpu..."
sql> set serveroutput on;
sql> remark 引用游標
sql> remark
sql> remark .........
sql> remark 引用游標:無法在游標宣告的時候就確定游標的查詢語句,需要根據業務邏輯過程確定查詢,引用游標就是擁有這個靈活性;
sql> remark 弱型別引用游標的案例:
sql> declare
2 type curemptype is ref cursor;
3 curemp_ref curemptype;
4 command char(1);
5 currow emp%rowtype;
6 theename emp.ename%type;
7 begin
8 dbms_output.put_line('請輸入操作命令('||'1-查詢deptno=30員工的姓名,'||'其它查詢job=manager的員工資訊');
9 command:=&m命令;
10 if command='1' then
11 dbms_output.put_line('輸入命令1----');
12 open curemp_ref for select empno from emp where deptno=30;
13 loop
14 fetch curemp_ref into theename;
15 exit when curemp_ref%notfound;
16 dbms_output.put_line(theename);
17 end loop;
18 close curemp_ref;
19 else
20 dbms_output.put_line('輸入的命令是:2...');
21 open curemp_ref for select * from emp where job='manager';
22 loop
23 fetch curemp_ref into currow;
24 exit when curemp_ref%notfound;
25 dbms_output.put_line('編號:'||currow.empno);
26 end loop;
27 end if;
28 end;
29 /
enter value for m命令: 2
old 9: command:=&m命令;
new 9: command:=2;
請輸入操作命令1-查詢deptno=30員工的姓名,其它查詢job=manager的員工資訊
輸入的命令是:2...
編號:7698
編號:7782
pl/sql procedure successfully completed.
sql> remark 強型別游標的定義
sql> declare
2 type curemptype is ref cursor return emp%rowtype;
3 curemp_ref curemptype;
4 command char(1);
5 currow emp%rowtype;
6 begin
7 dbms_output.put_line('請輸入操作指令:1 和 2');
8 command :=&命令;
9 if command='1' then
10 dbms_output.put_line('1.....');
11 open curemp_ref for select * from emp where deptno=30;
12 loop
13 fetch curemp_ref into currow;
14 exit when curemp_ref%notfound;
15 dbms_output.put_line('編號:'||currow.empno||'姓名:'||currow.ename);
16 end loop;
17 close curemp_ref;
18 else
19 dbms_output.put_line('2...');
20 open curemp_ref for select * from emp where job ='manager';
21 loop
22 fetch curemp_ref into currow;
23 exit when curemp_ref%notfound;
24 dbms_output.put_line('編號:'||currow.empno||'姓名:'||currow.ename);
25 end loop;
26 close curemp_ref;
27 end if;
28 end;
29 /
enter value for 命令: 1
old 8: command :=&命令;
new 8: command :=1;
請輸入操作指令:1 和 2
1.....
編號:7499姓名:allen
編號:7521姓名:ward
編號:7654姓名:martin
編號:7698姓名:blake
編號:7844姓名:turner
編號:7900姓名:james
pl/sql procedure successfully completed.
sql> spool off;
[color=olive][/color][size=medium][/size]
ORACLE的引用游標SYS REFCURSOR
declare c dept sys refcursor c emp sys refcursor v deptno dept.deptno type v empno emp.empno type begin open c dept for select d.deptno,cursor select ...
Oracle使用游標
了解一下訪問資料庫的ddl和tcl語句 一。plsql中使用select語句,應該與into字句連用,查詢出的返回值賦予into子句中的變數 變數的宣告是在delcare中 二。type屬性 在plsql中可以將變數和常量宣告為內建或使用者定義的資料型別,以引用乙個列名,同時繼承他的資料型別和大小。...
oracle宣告游標和使用游標
使用游標便利員工工資 declare 宣告乙個變數接收員工工資 v sal emp.sal type 宣告乙個變數接收員工編號 v ename emp.ename type 宣告乙個游標 cursor cur name isselect ename,sal from emp 查詢所有員工工資 beg...