工号问题,用jdbc执行“SELECT max(to_number(translate(trim(substr(c_code,instr(c_code,'9'))),'0123456789'||trim(substr(c_code,instr(c_code,'9'))),'0123456789') ,'9999999999999999999'))FROM tb_inf_employee;”的时候报错
程序提示:"java.sql.SQLException: ORA-00911: 无效字符 \t"异常。查了半天sql语句肯定没问题。后来上网一搜,原来在sql结束时加了‘;’,jdbc访问数据库,要求执行的sql语句结尾不能有分号的,都是分号惹的祸啊。
另外,上面的语句如果translate的结果为''则ResultSet的next()的getString方法返回的是null,不是“”空字符串,在程序中要额外判断。
本文详细介绍了在使用JDBC执行SQL语句时遇到的常见错误,即在SQL语句末尾添加分号导致的ORA-00911:无效字符 异常。同时,文章还提到了如何处理translate函数结果为空时ResultSet next()方法返回null的情况,并提供了避免此类问题的方法。
2587






