当前位置: 代码迷 >> J2EE >> :关于存储过程的编译异常
  详细解决方案

:关于存储过程的编译异常

热度:26   发布时间:2016-04-22 01:55:51.0
在线等:::关于存储过程的编译错误
现在有dept这个表,有三列分别是:deptno,dname,loc
我想根据传进去的no查询一条记录,存储过程如下:
create or replace procedure pro_select
(
no in number,
name out varchar2,
loc out varchar2
)
as
begin
select dname,loc into name,loc from dept where deptno=no;
end dept;
为什吗不会出现“创建的过程带有编译错误”,错就错吧,可还能创建?

------解决方案--------------------
SQL code
create or replace procedure pro_select(v_no in number,v_name out varchar2,v_loc out varchar2)as  cursor1 sys_refcursor;  sqlstr varchar(100);begin     sqlstr := 'select dname,loc from dept where deptno=' || v_no;     open cursor1 for sqlstr;     loop          fetch cursor1 into v_name,v_loc;         if cursor1%notfound then             exit;         end if;     end loop;end pro_select;
------解决方案--------------------
探讨
参数前面最好用v_开头,像no和name是关键字,会报错的。
貌似存储过程里面,不用直接写sql语句的,要用游标。
  相关解决方案