在写一个jdbc链接Oracle操作数据库的小测试时, 遇到 java.sql.SQLException: ORA-00917: 缺失逗号
这个错误信息不只是缺了逗号,还可以是少一个括号, 或者缺了单引号(还有其他情况欢迎补充).
博主遇到的是缺了两个单引号, 想想你在写Oracle存储过程的时候, 如果插入一个字符串, 是不是需要用单引号将这个字符串的值包起来?
为了不产生歧义,这里给出具体代码与改正
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/***
*
* @Title: DBConnect
* @Description: java.sql.SQLException: ORA-00917: 缺失逗号 实例代码
* @author csdn libertine1993
* @date 2015年8月27日 下午3:48:19
*/
public class DBConnect {
public static void main(String[] args){
String dbURL = "jdbc:oracle:thin:@主机IP:端口号:数据库名";
String username = "un";
String password = "pw";
try{
//load driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cn = DriverManager.getConnection(dbURL, username, password);
Statement sm = cn.createStatement();
String testStr = "test insert";
//SQL code
sm.execute(
"insert into A_TEST(F_CONTENT) values(" +
testStr+//错就在这里,漏了单引号 应该改为"'" + testStr + "'"
")"
);
}
catch(Exception e){
System.out.println(e.toString());
}
}
}