调用不了该存储过程,报错SQL 错误: ORA-00911: 无效字符
存储过程createorreplaceprocedureinsertTeaCou(affectRowoutnumber,myCouseIDinvarchar2,myTea...
存储过程
create or replace procedure insertTeaCou
(affectRow out number,myCouseID in varchar2,myTeacherID in varchar2,myClassroom in varchar2,myLessonTime in varchar2,myMajorID in varchar2,myTerm in varchar2)
is
begin
insert into tb_teacou(courseid,teacherid,classroom,lessontime,majorid,term) values(myCouseID,myTeacherID,myClassroom,myLessonTime,myMajorID,myTerm);
affectRow:=sql%rowcount;
dbms_output.put_line(affectRow);
commit;
end;(存储过程建立成功)
里面的insert语句单独测试过没有问题
insert into tb_teacou(courseid,teacherid,classroom,lessontime,majorid,term) values('1400123','2013000012','北1101','1-1','100000','2012-2013学年第一学期');(该语句执行成功)
尝试使用call 调用该存储过程!发生错误
在行 68 上开始执行命令时出错:
call insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期')
错误报告:
SQL 错误: ORA-00911: 无效字符
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
*Action: 展开
create or replace procedure insertTeaCou
(affectRow out number,myCouseID in varchar2,myTeacherID in varchar2,myClassroom in varchar2,myLessonTime in varchar2,myMajorID in varchar2,myTerm in varchar2)
is
begin
insert into tb_teacou(courseid,teacherid,classroom,lessontime,majorid,term) values(myCouseID,myTeacherID,myClassroom,myLessonTime,myMajorID,myTerm);
affectRow:=sql%rowcount;
dbms_output.put_line(affectRow);
commit;
end;(存储过程建立成功)
里面的insert语句单独测试过没有问题
insert into tb_teacou(courseid,teacherid,classroom,lessontime,majorid,term) values('1400123','2013000012','北1101','1-1','100000','2012-2013学年第一学期');(该语句执行成功)
尝试使用call 调用该存储过程!发生错误
在行 68 上开始执行命令时出错:
call insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期')
错误报告:
SQL 错误: ORA-00911: 无效字符
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
*Action: 展开
3个回答
展开全部
....从报错看肯定是问号错误...
= =虽说我也不是很了解oracle,但是如果你这是纯sql里面的话,你要call里面传入输出参数肯定是不能用?的,而是应该declare一个Number之类的然后将该变量作为参数传入。
如果你这是程序里面的………jdbc是可以直接写?的,但是你之后也需要setString来替换掉?……
PS:别用CALL了,直接用BEGIN...END吧...
- -虽说我比较倾向于你这是直接在oracle里面写的,但是同志们说从写法上不能排除是写在程序里面的。。。
= =虽说我也不是很了解oracle,但是如果你这是纯sql里面的话,你要call里面传入输出参数肯定是不能用?的,而是应该declare一个Number之类的然后将该变量作为参数传入。
如果你这是程序里面的………jdbc是可以直接写?的,但是你之后也需要setString来替换掉?……
PS:别用CALL了,直接用BEGIN...END吧...
- -虽说我比较倾向于你这是直接在oracle里面写的,但是同志们说从写法上不能排除是写在程序里面的。。。
追问
唉~太久没编代码了……一时间没找到写代码的感觉。虽然你不熟悉Oracle,但是你看出了我call是在程序里面调用的了。冲你的setString(),我知道哪里错了!~谢谢哈
追答
= =你赢了……虽说当时说起来的时候说有可能是在程序里面……但是我猜的是直接的sql语句……另外一个同事才说的是程序……明天去又得被说成战五渣了T T
展开全部
调用是用begin end的呀
begin
insertTeaCou('1400123','2013000012','北1101','1-1','100000','2012-2013学年第一学期');
end;
还有,你那怎么出现了个问号,就是
call insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期')
括号里第一个
begin
insertTeaCou('1400123','2013000012','北1101','1-1','100000','2012-2013学年第一学期');
end;
还有,你那怎么出现了个问号,就是
call insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期')
括号里第一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
begin
insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期');
end;
不需要call
insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期');
end;
不需要call
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询