Ora-03114:未连接数据库
现象: 在使用pl/sql developer编译时总是报 Ora-03114:未连接数据库。
解决方法: 去掉cdc功能。
故障原因:PLSQLDev.exe程序和Oracle数据库的CDC功能产生冲突;使用TOAD,OEM等其他客户端工具则不会有以上情况。
操作为:
DROP TRIGGER sys.cdc_alter_ctable_before;
DROP TRIGGER sys.cdc_create_ctable_after;
DROP TRIGGER sys.cdc_create_ctable_before ;
DROP TRIGGER sys.cdc_drop_ctable_before;
做以上操作就可以编译了,如果还是不可以编译,就再执行如下的语句
CALL sys.dbms_java.dropjava('-s rdbms/jlib/CDC.jar');
Oracle CDC简介
CDC(Change Data Capture)是oracle在数据库级别实现的增量抽取解决方案。在一般的ETL过程中,对于增量抽取,无非是在数据上加时间截,全记录比对,关键字段比对,日志分析抽取等几种方法,要么需要修改原表结构,要么需要大量的算法,要么借助第三方的工具实现。Oracle从9i开始引入的CDC特性,使得有机会在数据库层面上直接实现增量抽取功能,在性能方面由于和数据库引擎的直接集成,比第三方工具应该具有一定的优势。
CDC有两个模式:同步和异步。两种模式的实现机制是截然不同的。同步CDC主要是采用触发器记录新增数据,基本能够做到实时增量抽取。而异步CDC则是通过分析已经commit的日志记录来得到增量数据信息,有一定的时间延迟,并且提供了到Oracle Streams的接口。同步CDC在企业版或者标准版中都可以使用,异步CDC则只包含在企业版中。注意CDC在9i和10g中有了比较大的改变,异步CDC主要采用了和Streams相同的技术。
CDC中将系统分为两个角色:发布者和订阅者。发布者主要负责捕获增量数据,订阅者则将增量数据传递给实际应用。这些任务都可以通过oracle提供的PL/SQL包实现。
官方文档说明:
ORA-03114 not connected to ORACLE
Cause:
A call to Oracle was attempted when no connection was established. Usually this happens
because a user-written program has not logged on. It may happen if communication trouble causes
a disconnection. In addition, this message could occur when ALTER SYSTEM KILL SESSION or ALTER
SYSTEM DISCONNECT SESSION were issued with the IMMEDIATE qualifier because, in those cases,
the client's connection to the database is terminated without waiting for the client to issue a request.
Action: Try again. If the message recurs and the program is user written, check the program.
----end----
或许可以一试: