2 liuzhen6835 liuzhen6835 于 2015.07.25 16:49 提问

用Java调用oracle的问题

String sql="update emp set ?=? where empno=? ";
try
{
ps=conn.prepareStatement(sql);
ps.setString(1,oldInfo);
ps.setInt(2, infoInt);
ps.setInt(3,empId);
count=ps.executeUpdate();
}
String sql="update emp set ?=? where empno=? ";错误在这一句
java.sql.SQLSyntaxErrorException: ORA-01747: user.table.column, table.column 或列说明无效

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.25 18:12
已采纳
 String sql="update emp set ?=? where empno=? ";
try
{
ps=conn.prepareStatement(sql);
ps.setString(1,oldInfo);
ps.setInt(2, infoInt);
ps.setInt(3,empId);
count=ps.executeUpdate();
} 
字段不能通过参数方式,改成
String sql="update emp set "+oldInfo + "=? where empno=? ";
try
{
ps=conn.prepareStatement(sql);
ps.setInt(1, infoInt);
ps.setInt(2,empId);
count=ps.executeUpdate();
} 
liuzhen6835
liuzhen6835 谢谢
2 年多之前 回复
CSDNXIAOD
CSDNXIAOD   2015.07.25 17:00

oracle调用Java 权限问题
Oracle 调用java 初始(一)
java 调用用java写的oracle存储过程的相关问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

miracle_yao
miracle_yao   2015.07.25 16:56

String sql="update emp set ?=? where empno=? ",第一个?应该是个字段名吧

liuzhen6835
liuzhen6835 是的
2 年多之前 回复
guwei4037
guwei4037   Ds   Rxr 2015.07.25 17:00

String sql="update emp set ?=? where empno=? ";错误在这一句

准确的说在set ?=?

尽管下面有这句话:ps.setString(1,oldInfo); 但实际上结果为:set 'oldInfo' = 12; 很显然生成的sql不正确。

liuzhen6835
liuzhen6835 应该是这样!那么怎么解决呢?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片