无效 SQL 语句:语法不对了.
解决方案 »
- 请高手帮帮忙
- 在java存储过程如何引用第三方的类包
- 求一Sql语句,如果有重复的根据某字段条件来取数据
- 在线急等```
- oracle有几个文件特别大,请问是什么文件,如何解决?
- 问个rownum应用于分页的东东?
- 一个数据表中记录关于日期的问题...在线等待啊
- SQL*PLUS里调用一个用PL/SQL写的函数的语法是怎样的?在PB中调用又是怎么样的?在线,谢谢!
- 请问在Oracle如何Update,我用以下语法来Update是否会造成效率的严重下降?有没有好的方法来执行多表Update?谢谢!
- 哪里有win2ooo 的补丁程序??
- 请问在oracle中对完整sql语句的审计结果保存在那个表中?我在aud$中没有找到。
- SQL语句问题
sql1 := 'SELECT ELECT_ID,SESS_ID FROM TRAIN_SCH WHERE ELECT_ID ='''||p_elect_id||'''';
OPEN p_cur_trainsch FOR sql1;
问题一:p_cur_trainsch OUT type_cur_trainsch ,这个我已经在包里已经定义,而且我改成静态执行是完全正确的。游标没问题,数据可以取出来。第二个问题是:我已经这样改了,不过报的错误是:
游标不能在动态sql open语句中使用
请问,是否还需要主意什么问题
OPEN p_cur_trainsch FOR sql1 using p_elect_id;
还是要再请问一下beckhambobo(beckham),
这个sql语句里的“m”是什么意思,谢谢
其次,open的语法很简单:open 游标变量 for 查询语句.
先是包:
REATE OR REPLACE PACKAGE nears_trainsch_pg IS
TYPE type_cur_trainsch IS REF CURSOR RETURN TRAIN_SCH%ROWTYPE;
PROCEDURE nears_listall_trainsch_sp
(
p_elect_id IN Varchar2,
p_cur_trainsch OUT type_cur_trainsch
);
END nears_trainsch_pg;体如下:
CREATE OR REPLACE PACKAGE BODY nears_trainsch_pg ISPROCEDURE nears_listall_trainsch_sp
(
p_elect_id IN Varchar2,
p_cur_trainsch OUT type_cur_trainsch
)
IS
sql1 varchar2(255);
BEGIN
sql1 := '
OPEN p_cur_trainsch FOR
SELECT ELECT_ID,SESS_ID
WHERE ELECT_ID ='|| p_elect_id;
execute immediate sql1;
END nears_listall_trainsch_sp;END nears_trainsch_pg;
PROCEDURE nears_listall_trainsch_sp
(
p_elect_id IN Varchar2,
p_cur_trainsch OUT type_cur_trainsch
)
IS
BEGIN
OPEN p_cur_trainsch FOR
SELECT ELECT_ID,SESS_ID
FROM TRAIN_SCH
WHERE ELECT_ID = p_elect_id;
END nears_listall_trainsch_sp;
TYPE type_cur_trainsch IS REF CURSOR;
.......
sql1 := 'SELECT ELECT_ID,SESS_ID FROM TRAIN_SCH WHERE ELECT_ID =:m';
OPEN p_cur_trainsch FOR sql1 using p_elect_id;记得用完游标后关闲.