把alert_sid.log文件建成外部表,然后通过like查询ora-啊:例子如下: SQL> create or replace directory bdump as 'D:\oracle\admin\testDb\bdump'; SQL> create table alert_log(text varchar2(255)) organization external (type oracle_loader default directory bdump access parameters (records delimited by newline badfile 'bad.txt' logfile 'log.txt' FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LDRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS WITH ALL NULL FIELDS ) location ('alert_testdb.log') ) reject limit unlimited; --测试 SQL> select * from alert_log where text like '%ORA-%' and rownum<=10;
为什么我直接使用select * from alert_log where text like '%ORA-%' and rownum<=10;报错:表或视图不存在一定要执行 SQL> create or replace directory bdump as 'D:\oracle\admin\testDb\bdump'; SQL> create table alert_log(text varchar2(255)) organization external (type oracle_loader default directory bdump access parameters (records delimited by newline badfile 'bad.txt' logfile 'log.txt' FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LDRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS WITH ALL NULL FIELDS ) location ('alert_testdb.log') ) reject limit unlimited; 这样的语句吗?这是干什么用的,因为是在线数据库,不允许执行其他操作.
没有 创建表 create table alert_log 这个过程,你执行select * from alert_log 当然提示表不存在了。
恩 楼主可以在自己的机器上试下啊 难道自己机器上没装Oracle?
我已经新建了一个数据库.执行了oracledbalgtu 给的语句(完全不变的执行),但是 select * from alert_log where text like '%ORA-%' and rownum <=10; 仍然报错: ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错 ORA-29400: 数据插件错误KUP-04063: unable to open log file log.txt OS error 系统找不到指定的文件。 ORA-06512: 在"SYS.ORACLE_LOADER", line 14 ORA-06512: 在line 1 oracledbalgtu 能再帮帮忙吧,关于ORACLE我太菜....另外,会对现有的日志文件造成影响吗?能方便得到出错的时间吗?alert_log属于哪一个用户?其他兄弟也都帮忙看看,分不够我再加,谢谢!
SQL> create or replace directory bdump as 'D:\oracle\admin\testDb\bdump';
SQL> create table alert_log(text varchar2(255))
organization external
(type oracle_loader
default directory bdump
access parameters
(records delimited by newline
badfile 'bad.txt'
logfile 'log.txt'
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
)
location ('alert_testdb.log')
)
reject limit unlimited;
--测试
SQL> select * from alert_log where text like '%ORA-%' and rownum<=10;
SQL> create or replace directory bdump as 'D:\oracle\admin\testDb\bdump';
SQL> create table alert_log(text varchar2(255))
organization external
(type oracle_loader
default directory bdump
access parameters
(records delimited by newline
badfile 'bad.txt'
logfile 'log.txt'
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LDRTRIM
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
)
location ('alert_testdb.log')
)
reject limit unlimited; 这样的语句吗?这是干什么用的,因为是在线数据库,不允许执行其他操作.
create table alert_log
这个过程,你执行select * from alert_log 当然提示表不存在了。
恩 楼主可以在自己的机器上试下啊 难道自己机器上没装Oracle?
select * from alert_log where text like '%ORA-%' and rownum <=10;
仍然报错:
ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错
ORA-29400: 数据插件错误KUP-04063: unable to open log file log.txt
OS error 系统找不到指定的文件。
ORA-06512: 在"SYS.ORACLE_LOADER", line 14
ORA-06512: 在line 1
oracledbalgtu 能再帮帮忙吧,关于ORACLE我太菜....另外,会对现有的日志文件造成影响吗?能方便得到出错的时间吗?alert_log属于哪一个用户?其他兄弟也都帮忙看看,分不够我再加,谢谢!