应该是select From user where +条件
我觉得你应该这样判断
if(!rsnext)
{
--插入新用户
}
else
{
--用户存在。
}
1 对于抛错ORA-00942,表或视图不存在或者找不到数据连接:ull
11 解决方案
要先确认数据库里表或字段是否存在,或者是否拼写正确。
当初创建时是以什么用户创建的,现在的连接用户是否有权限查询该表。用建表的用户连接后再查询看看。
2 对于抛错ORA-00904,标识符无效
21 解决方案
需要确定数据库里对应字段类型是否匹配。
字段、表达式的别名在where子句和group by子句都是不能使用的。
3 对于抛错ORA-01008: 并非所有变量都已绑定
需要结合看一下具体的存储过程是怎么写的,然后在65中调用看看。
31 解决方案
61升级到65,存储过程写法需要变一下,原写法如:call usernameprocname(,'[para|]','[para|]','[para|]')需要改为65里的写法:{call usernameprocname(,'[p_year|]','[p_season|]','[p_unit|]')}即可。
改成这种写法后,如果仍然不成功,报ORA-06550的错误。
原因是:ORACLE里面的存储过程,识别包体名,而不是用户名。直接拖得话,默认是用户名,要自己写包名才行。
4 对于抛错ORA—00936:missing expression
41 解决方案
sql里的参数写法问题,and ([pro_status|])和前面的参数识别冲突,去掉and ([pro_status|])即可。
5 对于抛错ORA-01401: 插入的值对于列过大
51 原因
数据库的字段nvarchar2(2000),只能存储1000的汉字,当插入2000的汉字的时候就会报错。
52 解决方案
把nvarchar2(2000)改成nvarchar2(4000)就可以存下你的2000个汉字了。但是有一点,nvarchar2最大也只能够放到4000宽度了。如果还需要存更多的汉字,字段类型就得用Clob类型了。
6 对于报错ORA-01830: 日期格式在转换整个输入字符串之前结束
61 原因
在对字符串型数据转化成日期型数据时,字符串的长度大于格式化的长度,如test数据库中的一个数据列notice_date存的数据为:2011/08/12 08:49:23,将其转化为yyyy-mm-dd格式的数据时,如sql语句为:select todate(notice_date,'yyyy-mm-dd') from test就会报错。
62 解决方案
使用substr函数将字符串的位数截取的和转换的日期函数相同,如上面的sql语句就改为:select todate(substr(notice_date,1,10,'yyyy-mm-dd') )from test即可。
7 对于报错:The Network Adapter could not establish the connection
71 解决方案
数据库里系统日志满了,删除后重新启动OracleOraDb10g_home1TNSListener服务后就ull能连接成功了。
这一条语句没有问题,不过你应该这样来利用
Connection con=……;//已经初始化
PreparedStatement state=conprepareStatement(sql);//初始化PreparedStatement 变量
statesetString(1,"Gone with the Wind");//给第一个?赋值:字符串
statesetInt(2,39);//给第二个?赋值:数值
stateexecuteUpdate() ;//执行sql update语句
1、拼接的sql条件中少写了字段
2、把所写的SQL在后台打印出来看看吧,建议把所有参数都用 代替,然后用 PreparedStatment 来执行
3、其中有数据的值为空
以上就是关于jdbc向Oracle数据库插入一条记录,MyEclipse报错ORA-00936: 缺失表达式全部的内容,包括:jdbc向Oracle数据库插入一条记录,MyEclipse报错ORA-00936: 缺失表达式、帆软报错表名无效、java.sql.BatchUpdateException: ORA-00936: missing expression等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)