JAVA 调用存储过程出错。提示:ORA-00917: missing comma(丢失逗号)? 400 报错
//我的JAVA调用代码为: Connection conn = UtilDB.getInstance().getConnection(); String call= "{call P_USERMAP(?,?)}"; CallableStatement pst = conn.prepareCall(call); pst.setString(1,"INSERT INTO USERMAP(OBJID,USERNAME) VALUES(USERMAPS.NEXTVAL,''**********'') returning OBJID into :1"); pst.registerOutParameter(2,Types.VARCHAR); pst.execute();
//提示:ORA-00917: missing comma(丢失逗号) 找不出原因不知道为什么请高手回答。
##存储过程为####### create or replace procedure P_UserMap(v_sql in varchar, id out varchar) is begin execute immediate v_sql returning into id; end P_UserMap; ###调用方式为: DECLARE V_SQL VARCHAR2(200); ID VARCHAR2(200); BEGIN V_SQL := 'INSERT INTO USERMAP(OBJID,USERNAME) VALUES(USERMAPS.NEXTVAL,''******'') returning OBJID into :1'; P_USERMAP( V_SQL => V_SQL, ID => ID ); DBMS_OUTPUT.PUT_LINE('ID = ' || ID); END; ######返回结果为:ID = 742
为什么测试通过的存储过程在JAVA中再调用就会提示缺少逗号?
找不出原因。
######多单引号
######1. 当前数据库为:9i 我用的jdbc连接包是 10g的。
2. 插入语名不能带两个单引号:查询应改为:insert into usermap(id,***) values(usermaps.nextval,'*****') returning id into :1的形式
所以产生了上述情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。