存储过程无返回值
函数必须有且只有一个返回值。。是这样的吗??有多个返回值的吗
函数必须有且只有一个返回值。。是这样的吗??有多个返回值的吗
解决方案 »
- 求一条sql语句,更新字段的值
- 求一SQL语句或存储过程
- 字段名带有 & 符号
- oracle的備份方法能否像SQL一樣
- oracle要怎么样设置才能不输密码而用sysdba登陆?
- sqlplus和imp两种方法都不成功:oracle打开dmp文件怎么就这么难呢?
- 触发器(ORACLE)
- ORA-12560 TNS:协议适配器错误!请高手指教!
- 为什么我在sqlplus里建表插入数据当时查能查到,但关了sqlplus之后在打开sqlplus查就查不到数据了,说未选定行
- pl/sql中如何求几个数中的最小的????
- ORA-01017 ORA-01031
- pl/sql 中怎么实现对一个参数的重复输入
函數必須有且只有一個返回值。如,
create or replace procedure p123(n1 number, n2 out number, n3 out number) is
begin
n2 := n1 * n1; -- 平方
n3 := n2 * n1; -- 立方
end;declare
p1 number := 3;
p2 number;
p3 number;
begin
p123(p1, p2,p3);
dbms_output.put_line('p1 = ' || p1);
dbms_output.put_line('p1的平方 = ' || p2);
dbms_output.put_line('p1的立方 = ' || p3);
end;p1 = 3
p1的平方 = 9
p1的立方 = 27
要返回多值的话,可以用多个out,或用动态游标等
函數必須有一个return返回值,同样也有out和in out参数。
--一个简单的例子
SQL> create or replace procedure p_record(rec out sys_refcursor
2 )
3 as
4 begin
5 open rec for select empname from emp;
6 end;
7 /过程已创建。SQL> edi
已写入 file afiedt.buf 1 declare
2 type v_rec_type is table of emp.empname%type;
3 v_rec v_rec_type;
4 rec sys_refcursor;
5 begin
6 p_record(rec);
7 fetch rec bulk collect into v_rec;
8 for i in 1..v_rec.count loop
9 dbms_output.put_line(v_rec(i));
10 end loop;
11 close rec;
12* end;
SQL> /
sunny
wkc168
SCOTT
SMITH
CLERKPL/SQL 过程已成功完成。