如果我在Oracle中创建这样的表:
SQL> CREATE TABLE emp_load
2 (employee_number CHAR(5),
3 employee_dob CHAR(20),
4 employee_last_name CHAR(20),
5 employee_first_name CHAR(15),
6 employee_middle_name CHAR(15),
7 employee_hire_date DATE)
8 ORGANIZATION EXTERNAL
9 (TYPE ORACLE_LOADER
10 DEFAULT DIRECTORY def_dir1
11 ACCESS PARAMETERS
12 (RECORDS DELIMITED BY NEWLINE
13 FIELDS (employee_number CHAR(2),
14 employee_dob CHAR(20),
15 employee_last_name CHAR(18),
16 employee_first_name CHAR(11),
17 employee_middle_name CHAR(11),
18 employee_hire_date CHAR(10) date_format DATE mask "mm/dd/yyyy"
19 )
20 )
21 LOCATION ('info.dat')
22 );
Table created.
我需要查询和更新部件中使用的文件
LOCATION('info.dat')
我想把文件名改为:
select LOCATION from <something>.emp_load;
收到错误:
Error at line 1
ORA-00904: "LOCATION": invalid identifier
进行此查询的正确方法是什么?
提前致谢
答案 0 :(得分:3)
select directory_path
from all_directories
where directory_name = 'DEF_DIR1';
你的档案将在那里。
如果要查找表的目录及其他相关信息,可以从the all_external_tables
view获取。
如果要查找目录和位置,可以从the all_external_locations
view
select directory_name, location
from all_external_locations
where table_name = 'EMP_LOAD';
如果您在不同的模式中有重复项,则可能需要为任何这些查询指定所有者;或者,如果您拥有该表,则查询user_*
视图。
答案 1 :(得分:0)
它的工作方式:
select * from all_external_locations where table_name='<table name>' and owner='<owner>';