当前位置: 代码迷 >> Oracle管理 >> select查询的结果不能作为存储过程的实参么?该如何处理
  详细解决方案

select查询的结果不能作为存储过程的实参么?该如何处理

热度:30   发布时间:2016-04-24 05:30:11.0
select查询的结果不能作为存储过程的实参么?
SQL code
写了一个存储过程,向一个emp表中插入数据。。如果用如下调用是可以执行的。DECLARE  L_EMPNO  EMP.EMPNO%TYPE;  L_DEPTNO DEPT.DEPTNO%TYPE;BEGIN  SELECT MAX(EMPNO) + 1 INTO L_EMPNO FROM EMP;  SELECT DEPTNO INTO L_DEPTNO FROM DEPT WHERE ROWNUM = 1;  PRO_INSERT_TAB_EMP(L_EMPNO,                     'yc',                     'xx',                     12,                     '20120213',                     123,                     123,                     L_DEPTNO);END;--但是我想少些一些代码,直接把select查询的值返回作为存储过程的实参。但报错--下面的报错BEGIN  PRO_INSERT_TAB_EMP((SELECT MAX(EMPNO)+1 FROM EMP), 'yc', 'xx', 'xx', '2012213', 123, 123, 10)END;


------解决方案--------------------
是不是最大的有几个值 返回多个了?
------解决方案--------------------
不可以,PL/SQL不支持这种类似闭包操作。
  相关解决方案