JAVA调用SQL server2005带参数的存储过程,如果参数中有汉字和空格或任何标点符号都会报异常,这是怎么回事参数中有汉字的:
String str="空闲";
call = conn.prepareCall("{call test('"+str1+"')}");
com.microsoft.sqlserver.jdbc.SQLServerException: 在此上下文中不允许使用名称 "空闲"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。 参数中带空格的
String str="12 3";
call = conn.prepareCall("{call test('"+str1+"')}");
com.microsoft.sqlserver.jdbc.SQLServerException: '38' 附近有语法错误。
参数中只能是纯字母或者数字,不能有汉字和任何标点符号,怎么处理呢
解决方案 »
- iBATIS中resultClass可以是java.sql.ResultSet吗?
- 求帮助,正则截取!
- struts2 action上传文件失败
- 请教编写论坛的大体思想?
- struts2 radio标签
- 如何部署服务器?
- java.lang.IllegalStateException: getOutputStream() has already been called for this response
- Tomcat5+IIS集成碰到的问题?
- 高分求好的数据层封装源码,要求是不能使用entitybean的,不能封装sql的,只能是对jdbc友好封装.
- hql 语句添加case when 疑惑
- 代码注入求助???
- 问个关于struts2 的bean的问题
括号是发贴时写错了,参数类型是varchar
问题不知怎么解决呀
CallableStatement cstmt = con.prepareCall("{call test(?)}");
cstmt.registerOutParameter(1, java.sql.Types.字符串类型的);
cstmt.executeQuery();
call = conn.prepareCall("{call test('"+str1+"')}");
com.microsoft.sqlserver.jdbc.SQLServerException: 在此上下文中不允许使用名称 "空闲"。有效表达式包括常量、常量表达式和变量(在某些上下文中)。不允许使用列名。
参数中带空格的
String str="12 3";
call = conn.prepareCall("{call test('"+str1+"')}");
com.microsoft.sqlserver.jdbc.SQLServerException: '38' 附近有语法错误。
call.registerOutParameter(1,java.sql.Types.NVARCHAR);