Ora-03113\Ora-03114与Oracle In 拼接字符串的问题
2014-05-30 11:36
381 查看
刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将近两年的时间,对SqlServer相对来说很熟悉,比较而言,Oracle真心很痛苦,脚本编写费力,错误调试费力,哎,各种费力。
估计各路大神很不屑,甚至鄙视,会说Oracle怎么怎么好。我只是说,Oracle在对待开发者着实不如SqlServer友好,至于性能我不提及。
最近项目由SqlServer迁移到Oracle下,有很多脚本出现问题需要调整。其中一条诡异的错误,折腾的很郁闷。
问题大致是这样子的。
先找出我所在的部门,并可能做其他相应的处理。
然后找出我部门的任务。
这个时候就报错了,始终提示ora-03113的错误,然后确认后提示ora-03114。
网上查找资料后,大家的经验多数是网络的问题,需要配置网络连接参数等,但问题是,查出的部门可能是'a','b','c','d','e',然后我删除几个等又没了问题,感觉和Sql语句有关系,而非网络问题。
最后终于找到原因,其实是表设计、Sql语句、网络连接三者共同作用的结果。
我查找了表结构,发现定义了N多没用的索引,然后删除掉后,由原来的'a','b'增加到'a','b','c','d',但到了'e',仍然错误。
后来把第一个查询部门的语句整合到第二个查询任务的语句中,然后OK了。
原来Oracle的In语句对于字符串列表变量的处理有一定的玄机。
所以,对于那些非从表中查询得出的,可以通过select 'a' from dual union select 'b' from dual来处理。
哎,Oracle并没有报查询超时的问题,直接报网络连接,不够细致,对于新手来说,确认比较痛苦。
估计各路大神很不屑,甚至鄙视,会说Oracle怎么怎么好。我只是说,Oracle在对待开发者着实不如SqlServer友好,至于性能我不提及。
最近项目由SqlServer迁移到Oracle下,有很多脚本出现问题需要调整。其中一条诡异的错误,折腾的很郁闷。
问题大致是这样子的。
先找出我所在的部门,并可能做其他相应的处理。
select department from users where username = 'eyuan'
然后找出我部门的任务。
select taskname from tasks where department in ("+myDepartments+")
这个时候就报错了,始终提示ora-03113的错误,然后确认后提示ora-03114。
网上查找资料后,大家的经验多数是网络的问题,需要配置网络连接参数等,但问题是,查出的部门可能是'a','b','c','d','e',然后我删除几个等又没了问题,感觉和Sql语句有关系,而非网络问题。
最后终于找到原因,其实是表设计、Sql语句、网络连接三者共同作用的结果。
我查找了表结构,发现定义了N多没用的索引,然后删除掉后,由原来的'a','b'增加到'a','b','c','d',但到了'e',仍然错误。
后来把第一个查询部门的语句整合到第二个查询任务的语句中,然后OK了。
原来Oracle的In语句对于字符串列表变量的处理有一定的玄机。
所以,对于那些非从表中查询得出的,可以通过select 'a' from dual union select 'b' from dual来处理。
哎,Oracle并没有报查询超时的问题,直接报网络连接,不够细致,对于新手来说,确认比较痛苦。
相关文章推荐
- 解决Oracle in 超过1000个问题 C#拼接字符串
- oracle 10G :ora-01033 oracle initialization or shutdown in progress 问题解决
- oracle中由两个字符串拼接成别名的问题
- 删除 SDE.DBF 所带来的ORA-01033: ORACLE initialization or shutdown in progress错误问题
- Oracle PlSql 问题集锦 - 数字或值错误:字符串缓冲区太小【ORA-06502】
- 程序运行过程中遇到“ORA-03114: not connected to ORACLE”的问题解决
- 解决oracle 10g 问题之ORA-01078: failure in processing system parameter...
- Oracle 10.2 流复制问题(四)—— ORA-01341: LOGMINER OUT-OF-MEMORY in Oracle Streams
- ORA-01033: ORACLE initialization or shutdown in progress --手动删除表空间 DBF 后无法登陆问题
- oracle ora-01033:oracle initialization or shutdown in progress问题解决
- 关于Oracle存储过程中的IN子句传参的问题(不能直接传字符串,需要处理)
- 数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以及问题(续1之拼接字符串)
- oracle多个结果集拼接字符串;where id in 字符串
- ORA-01078: failure in processing system parameters 问题的解决方法(Oracle 11g)
- Oracle查询,如果以0开头和字符串拼接会出现0不见的问题
- oracle多个结果集拼接字符串;where id in 字符串 (转)
- 解决oracle 11g 问题之ORA-01078: failure in processing system parameters
- 如何解决oracle的ERROR: ORA-01033: ORACLE initialization or shutdown in progress问题
- Oracle 11G gateway 连接MS Sql Server 字符串转换问题ORA-28562,ORA-02063
- 关于用OracleInProcServer.XOraSession连接oracle 的问题。