zig*_*ggy 7 database oracle logging plsql oracle10g
CREATE TABLE LOG_FILES (
LOG_DTM VARCHAR(18),
LOG_TXT VARCHAR(300)
)
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY LOG_DIR
ACCESS PARAMETERS(
RECORDS DELIMITED BY NEWLINE
FIELDS(
LOG_DTM position(1:18),
LOG_TXT position(19:300)
)
)
LOCATION('logadm'))
)
REJECT LIMIT UNLIMITED
/
Run Code Online (Sandbox Code Playgroud)
LOG_DIR是指向的oracle目录 /u/logs/
但问题是内容/u/logs/
看起来像这样
logadm_12012012.log
logadm_13012012.log
logadm_14012012.log
logadm_15012012.log
Run Code Online (Sandbox Code Playgroud)
有没有办法可以动态指定文件的位置?即每次运行Select * from LOG_FILES
它都应该使用当天的日志文件.(例如log_adm_DDMMYYYYY).
我知道我可以使用,alter table log_files location ('logadm_15012012.log')
但我不想发出alter命令.
还有其他可能吗?
谢谢
你跑10g真是太遗憾了.在11g上,我们可以将预处理器脚本(shell脚本)与外部表相关联.在您的情况下,您可以运行一个脚本,该脚本将找出最新文件,然后发出复制命令.就像是:
cp logadm_15012012.log logadm
Run Code Online (Sandbox Code Playgroud)
Adrian Billington在此发表了关于此功能的博文.坦率地说,他的写作比官方文档更有帮助.
但是当你使用10g时,你可以做的就是运行ALTER TABLE语句,或者使用预定作业(cron
或其他)将新文件与通用名称同步.
归档时间: |
|
查看次数: |
4266 次 |
最近记录: |