- /**
- 這是幾個關於正確及錯誤PL/SQL對照使用的示例
- */
- create table test(tid int primary key not null,tname varchar2(50));
- create sequence test_seq start with 1 increment by 1;
- insert into test values(test_seq.nextval,'FLB');
- insert into test values(test_seq.nextval,'FLB1');
- ---------------------------------
- --錯誤函數1
- create or replace function f
- return int
- begin
- return 5*5;
- end;
- --錯誤函數2
- create or replace function f()
- return number
- is
- begin
- return 5*5;
- end;
- --錯誤函數3
- create or replace function f
- return number
- begin
- return 5*5;
- end;
- --該函數的正確函數1
- create or replace function f
- return number
- is
- begin
- return 5*5;
- end;
- --該函數的正確函數2
- create or replace function f
- return int
- is
- begin
- return 5*5;
- end;
- ------------------------------------
- --這是個正確函數,不過調試這個函數花了好幾十分鐘的時間,不熟悉了
- create or replace function f5
- (pid number)
- return varchar2
- is
- rname varchar2(50);
- cursor cname
- is
- select tname from test where tid=pid;
- begin
- open cname;
- fetch cname into rname;
- return rname;
- end;
- --調用函數用call出錯
- call f5(2);
- --調用出錯,函數必須有值的接收者
- begin
- f5(2);
- end;
- --這種方法調用不正確
- declare
- r varchar2;
- begin
- r:=f5(2);
- dbms_output.put_line(r);
- end;
- --這種方法調用正確
- begin
- dbms_output.put_line(f5(2));
- end;
- --這種方法調用正確
- declare
- r varchar2(50);
- begin
- r:=f5(2);
- dbms_output.put_line(r);
- end;
- --正確函數
- create or replace function f4
- (ttid in integer)
- return varchar2
- is
- rname varchar(50);
- cursor cname
- is
- select tname from test where tid=ttid;
- begin
- open cname;
- fetch cname into rname;
- return rname;
- end;
- --正確函數
- create or replace function f7
- (n in number)
- return number
- is
- begin
- return n*n;
- end f7;
- ------------------------------------------
- --過程
- create or replace procedure p1
- is
- begin
- dbms_output.put_line('First Procuder');
- end p1;
- --調用過程用call不會出錯
- call p1();
- --這種方法調用過程不正確
- begin
- dbms_output.put_line(p1());
- end;
- ----------注意函數與過程的調用的不同處----------
- ------------------------------------------------
- --錯誤過程
- create or replace procedure p3
- (ttid in Integer)
- is
- rname varchar;
- cursor cname
- is
- select tname from test where tid=ttid;
- begin
- open cname;
- fetch cname into rname;
- dbms_output.put_line(rname);
- end;
- --正確過程
- create or replace procedure p3
- (ttid in Integer)
- is
- rname varchar(50);
- cursor cname
- is
- select tname from test where tid=ttid;
- begin
- open cname;
- fetch cname into rname;
- dbms_output.put_line(rname);
- end;
幾個關於正確及錯誤PL/SQL對照使用的示例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.