专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle Exception

ORA-00900:无效SQL语句-普通的定义游标的存储过程错误

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草

就是一个普通的定义游标的存储过程,只是游标的select 语句中的where 后的字段名字和条件及取值都用参数传入,最麻烦的问题都解决了,可调用时就是报错

定义的包为:

CREATE OR REPLACE PACKAGE GET_EMP_NAME
AS
TYPE T_REF IS REF CURSOR;
PROCEDURE GET_ALL_EMPNAME(OPT VARCHAR2,TJ VARCHAR2,T_ID VARCHAR2,L_ID OUT T_REF);
END GET_EMP_NAME;
/

CREATE OR REPLACE PACKAGE BODY GET_EMP_NAME
AS
PROCEDURE GET_ALL_EMPNAME(OPT VARCHAR2,TJ VARCHAR2,T_ID VARCHAR2,L_ID OUT T_REF) AS
STR_SQL VARCHAR2(500);
BEGIN
STR_SQL:= 'OPEN L_ID FOR SELECT TASK_ID FROM EMPLOYEE ';
STR_SQL:= STR_SQL|| 'WHERE '||OPT||TJ|| 'T_ID ';
EXECUTE IMMEDIATE STR_SQL;
END GET_ALL_EMPNAME;
END GET_EMP_NAME;
/

这样调用的:
declare
e_name varchar2(4);
cursor_name get_emp_name.t_ref;
begin
get_emp_name.get_all_empname( 'TASK_ID ', '= ', '1 ',cursor_name);
loop
fetch cursor_name into e_name;
exit when cursor_name%notfound;
dbms_output.put_line(e_name);
end loop;
end;
/

报错:
declare
*
第一行出现错误:
ORA-00900:无效SQL语句
ORA-06512:在”SYSTEM.GET_EMP_NAME”, line 8
ORA-06512:在line 5

是什么错误?




------解决方法--------------------------------------------------------
用TOAD跟踪一下 看看你动态构件的SQL语句是否正确 然后再说
------解决方法--------------------------------------------------------
那个版本的,版本不同号码不同?
http://www.quest.com/requests/?RequestDefID=49

注册码:5-88860-02883-29060-03749

Toad v7.2
Site Message = Quest
Key = 5-88860-02883-29060-03749

toad v7.3
auth: 5-88860-01683-29060-00749
site message: www

Toad v7.4
5-01171-87532-9058168856
2-46571-48741-24484-88982

TOAD序列号7.0(如果版本不同的可能要一个个去试):
Wu Yung Shan: 1-36835-04383-25740-01513
Trial Version:4-11120-73601-65005-24785
John Doe: 5-88860-05843-29060-02749
www:5-88860-01683-29060-00749
Quest :5-88860-02883-29060-03749

TOAD下载地点:http://www.quest.com/toad/payload/TOADXpertSetup.EXE     

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: