java.sql.SQLException: ORA-00917: 缺失逗号

本文探讨了在使用JDBC连接Oracle数据库时遇到ORA-00917错误的具体原因及解决方法,通过实例展示了如何正确使用单引号包装插入字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写一个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());
		}
		
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值