我有几个输入文件被读入 Oracle 的外部表中。我想对所有文件的内容运行一些查询,但是,有一些查询我想根据它来自的输入文件过滤数据。有没有办法在针对外部表的 select 语句中访问源文件的名称,或者以某种方式在外部表中创建包含位置源的列。
这是一个例子:
CREATE TABLE MY_TABLE (
first_name CHAR(100 BYTES)
last_name CHAR(100 BYTES)
)
ORGANIZATION EXTERNAL
TYPE ORACLE_LOADER
DEFAULT DIRECTORY TMP
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE
SKIP 1
badfile 'my_table.bad'
discardfile 'my_table.dsc'
LOGFILE 'my_table.log'
FIELDS terminated BY 0x'09' optionally enclosed BY '"' LRTRIM missing field VALUES are NULL
(
first_name char(100),
last_name
)
)
LOCATION ( TMP:'file1.txt','file2.txt')
)
REJECT LIMIT 100;
select distinct last_name
from MY_TABLE
where location like 'file2.txt' -- This is the part I don't know how to code
有什么建议么?
始终可以选择将文件名作为附加列添加到输入文件本身。理想情况下,我想避免这种工作。