Ora-03114:未连接数据库
现象:在使用pl/sqldeveloper编译时总是报Ora-03114:未连接数据库。
解决方法:去掉cdc功能。
故障原因:PLSQLDev.exe程序和Oracle数据库的CDC功能产生冲突;使用TOAD,OEM等其他客户端工具则不会有以上情况。
操作为:
DROPTRIGGERsys.cdc_alter_ctable_before;
DROPTRIGGERsys.cdc_create_ctable_after;
DROPTRIGGERsys.cdc_create_ctable_before;
DROPTRIGGERsys.cdc_drop_ctable_before;
做以上操作就可以编译了,如果还是不可以编译,就再执行如下的语句
CALLsys.dbms_java.dropjava('-srdbms/jlib/CDC.jar');
OracleCDC简介
CDC(ChangeDataCapture)是oracle在数据库级别实现的增量抽取解决方案。在一般的ETL过程中,对于增量抽取,无非是在数据上加时间截,全记录比对,关键字段比对,日志分析抽取等几种方法,要么需要修改原表结构,要么需要大量的算法,要么借助第三方的工具实现。Oracle从9i开始引入的CDC特性,使得有机会在数据库层面上直接实现增量抽取功能,在性能方面由于和数据库引擎的直接集成,比第三方工具应该具有一定的优势。
CDC有两个模式:同步和异步。两种模式的实现机制是截然不同的。同步CDC主要是采用触发器记录新增数据,基本能够做到实时增量抽取。而异步CDC则是通过分析已经commit的日志记录来得到增量数据信息,有一定的时间延迟,并且提供了到OracleStreams的接口。同步CDC在企业版或者标准版中都可以使用,异步CDC则只包含在企业版中。注意CDC在9i和10g中有了比较大的改变,异步CDC主要采用了和Streams相同的技术。
CDC中将系统分为两个角色:发布者和订阅者。发布者主要负责捕获增量数据,订阅者则将增量数据传递给实际应用。这些任务都可以通过oracle提供的PL/SQL包实现。
官方文档说明:
ORA-03114notconnectedtoORACLE
Cause:
AcalltoOraclewasattemptedwhennoconnectionwasestablished.Usuallythishappens
becauseauser-writtenprogramhasnotloggedon.Itmayhappenifcommunicationtroublecauses
adisconnection.Inaddition,thismessagecouldoccurwhenALTERSYSTEMKILLSESSIONorALTER
SYSTEMDISCONNECTSESSIONwereissuedwiththeIMMEDIATEqualifierbecause,inthosecases,
ora-03114:未连接数据库theclient'sconnectiontothedatabaseisterminatedwithoutwaitingfortheclienttoissuearequest.
ora-03114:未连接数据库Action:Tryagain.Ifthemessagerecursandtheprogramisuserwritten,checktheprogram.
----end----
如果回答对您有帮助,请采纳
http://blog.sina.com.cn/s/blog_62e47f0e0100g6r0.html
http://blog.csdn.net/wyzxg/article/details/4676909
楼上的方法都试过了,不好用,谢谢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。