plsql 儲存過程 引數的傳遞方式?

2022-05-24 18:51:11 字數 1912 閱讀 1355

/*

儲存過程

一.oracel儲存過程

1、沒有返回值 return 值;

2、用輸出引數來代替返回值;

3、輸出引數可以有多個

二.引數的傳遞方式

1. 按位置傳遞

2. 按名字傳遞

3.混合傳遞 --按照位置傳遞,再按照名字傳遞

*/select

*from

emp;

call re4(

3,4);

create

orreplace

procedure

re6 (

id1

innumber

, id2

innumber

, name1

in emp.ename%

type,

name2

in emp.ename%

type,

n1 out

number

--需要返回乙個引數麼? )as

begin

insert

into emp (empno,ename,sal) values (id1,name1,5000

);

insert

into emp (empno,ename,sal) values (id2,name2,5000

);

commit;

select

count(*) into n1 from

emp;

end;

declare

v_count

number(2);--

oracle 沒有返回值 用輸出引數來定義。

begin

re6(

1,2,'

haha

','xixi

',v_count);

dbms_output.put_line(

'總記錄數'||

v_count);

end;

--1. 按位置傳遞

declare

v_count

number(2

);begin

re6(

3,4,'

jiji

','baba

',v_count); --

1. 按位置傳遞

dbms_output.put_line(v_count);

end;

--2.名字傳遞引數 無序

declare

v_count

number(2

);begin

--2.名字傳遞引數 無序

re6(name1=>'張三

',name2=>'李四

',id1=>

8,id2=>

9, n1=>

v_count);

dbms_output.put_line(v_count);

end;

select

*from

emp;

call re4(

1,2);

call re4(

3,4);

--混合傳遞

declare

v_count

number(2

);begin

re6(

1,2,name1=>'狼王

',name2=>'兔子

',n1=>v_count); --

按照位置傳遞,再按照名字傳遞

dbms_output.put_line('

總數量:'||

v_count);

end;

select

*from emp;

Oracle儲存過程傳遞陣列引數

今天晚上,和同事聊起oracle儲存過程傳遞陣列引數能否使用資料,之後就在自己的電腦上試試,試了試是可以使用。先要定義乙個型別myvarray list 陣列的長度是10,陣列中存放的資料型別是varchar2。sql create or replace type myvarray list as ...

PL SQL儲存過程

or replace 建立或替換,如果存在就替換,不存在就建立create or replace procedure piscursor cisselect from dept2 for update beginfor row record in c loopif row record.deptno...

pl sql 儲存過程

在這段時間的開發中資料庫用的是oracle以前用的都是mssql它們的儲存過程的寫法還有一點不一樣,所以花了一天的時間看了看!以下是我做的乙個小例子!create table mytesttable id number,name varchar2 10 insert into mytesttable...