调用不了该存储过程,报错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:
展开
 我来答
comicjump1906
2013-04-08 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:79万
展开全部
....从报错看肯定是问号错误...
= =虽说我也不是很了解oracle,但是如果你这是纯sql里面的话,你要call里面传入输出参数肯定是不能用?的,而是应该declare一个Number之类的然后将该变量作为参数传入。

如果你这是程序里面的………jdbc是可以直接写?的,但是你之后也需要setString来替换掉?……
PS:别用CALL了,直接用BEGIN...END吧...
- -虽说我比较倾向于你这是直接在oracle里面写的,但是同志们说从写法上不能排除是写在程序里面的。。。
追问
唉~太久没编代码了……一时间没找到写代码的感觉。虽然你不熟悉Oracle,但是你看出了我call是在程序里面调用的了。冲你的setString(),我知道哪里错了!~谢谢哈
追答
= =你赢了……虽说当时说起来的时候说有可能是在程序里面……但是我猜的是直接的sql语句……另外一个同事才说的是程序……明天去又得被说成战五渣了T T
badkano
2013-04-08 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
调用是用begin end的呀

begin
insertTeaCou('1400123','2013000012','北1101','1-1','100000','2012-2013学年第一学期');
end;

还有,你那怎么出现了个问号,就是

call insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期')

括号里第一个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2013-04-08 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2551万
展开全部
begin
insertTeaCou(?,'1400123','2013000012','北1101','4-2','100000','2012-2013学年第一学期');
end;

不需要call
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式