首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

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

2012-03-31 
在线等:::关于存储过程的编译错误现在有dept这个表,有三列分别是:deptno,dname,loc我想根据传进去的no查询

在线等:::关于存储过程的编译错误
现在有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语句的,要用游标。

热点排行