Oracle相关报错解决方法

编辑
文档创建者:文档助手1 (67727 )     浏览次数:3734次     编辑次数:12次     最近更新:dreamfrog 于 2017-09-17     

目录:

1. 报错ORA-00942编辑

对于报错ORA-00942表或视图不存在或者找不到数据连接:***ull
1.1 解决方案
要先确认数据库里表或字段是否存在,或者是否拼写正确。
当初创建时是以什么用户创建的,现在的连接用户是否有权限查询该表。用建表的用户连接后再查询看看。

2. 报错ORA-00904编辑

对于报错ORA-00904,标识符无效
2.1 解决方案
需要确定数据库里对应字段类型是否匹配。
字段、表达式的别名在where子句和group by子句都是不能使用的。

3. 报错ORA-01008编辑

对于报错ORA-01008: 并非所有变量都已绑定
需要结合看一下具体的存储过程是怎么写的,然后在6.5中调用看看。
3.1 解决方案
若是调用数据库存储过程取数,官方只支持查询语句select进行取数,其他写法(例如下面的写法), 返回的结果不能保证,不建议使用 :
6.1升级后,存储过程写法需要变一下,原写法如:call username.procname(?,'[?para|?]','[?para|?]','[?para|?]')需要改为这样的写法:{call username.package.procedure('${p1}','${p2}','${p3}',?)}即可。
具体调用存储过程示例如下图所示:
222

正确结果
222

改成这种写法后,如果仍然不成功,报ORA-06550的错误。
原因是:ORACLE里面的存储过程,识别包体名,而不是用户名。直接拖的话,默认是用户名,要自己写包名才行。

4. 报错ORA—00936编辑

对于报错ORA—00936:missing expression
4.1 解决方案
sql里的参数写法问题,and ([?pro_status|?])和前面的参数识别冲突,去掉and ([?pro_status|?])即可。

5. 报错ORA-01401编辑

对于报错ORA-01401: 插入的值对于列过大
5.1 原因
数据库的字段nvarchar2(2000),只能存储1000的汉字,当插入2000的汉字的时候就会报错。
5.2 解决方案
把nvarchar2(2000)改成nvarchar2(4000)就可以存下你的2000个汉字了。但是有一点,nvarchar2最大也只能够放到4000宽度了。如果还需要存更多的汉字,字段类型就得用Clob类型了。

6. 报错ORA-01830编辑

对于报错ORA-01830: 日期格式图片在转换整个输入字符串之前结束
6.1 原因
在对字符串型数据转化成日期型数据时,字符串的长度大于格式化的长度,如test数据库中的一个数据列notice_date存的数据为:2011/08/12 08:49:23,将其转化为yyyy-mm-dd格式的数据时,如sql语句为:select todate(notice_date,'yyyy-mm-dd') from test就会报错。
6.2 解决方案
使用substr函数将字符串的位数截取的和转换的日期函数相同,如上面的sql语句就改为:select to_date(substr(notice_date,1,10,'yyyy-mm-dd') )from test即可。

7. could not establish the connection编辑

对于报错:The Network Adapter could not establish the connection
7.1 解决方案
数据库里系统日志满了,删除后重新启动OracleOraDb10g_home1TNSListener服务后就ull能连接成功了。
或者,因网络问题或数据库没有启动导致连接失败。

8. 报错ORA-00911编辑

对于报错ORA-00911: 无效字符
8.1 原因
这个错误是由于sql语句有问题。把语句拿到库里执行也没报错,后来发现在库里查询时,查询语句结尾带了一个分号,库里面是支持这个分号的,但到IBATIS里面是不支持这个分号的。
8.2 解决方案

去掉分号。

附件列表


主题: 数据连接
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?