Directory created。
-- 2。 创建外部表
SQL> create table analog_tmp_entrypage_ext_1(
2 PROFILE_ID NUMBER(22),
3 REPORT_TIME NUMBER(22),
4 SESSION_ID NUMBER(22),
5 URL VARCHAR2(2048)
6 )
7 organization external
8 (type oracle_loader
9 default directory upload_dir
10 access parameters
11 (records delimited by newline
12 fields terminated by X'05'
13 missing field values are null
14 (PROFILE_ID, REPORT_TIME, SESSION_ID, URL)
15 )
16 location('weblog。
analog_tmp_entrypage_0。dat')
17 );
Table created。
-- 3。 查询报错。因为外部表和sqlldr原理类似,加载外部数据时需要创建log文件,无法加载的数据,会创建bad文件。
-- 那里出错的原因是:oracle对途径'/storagepool/upload'没有拜候权限,无法在该途径下创建log文件和bad文件。
SQL> select * from analog_tmp_entrypage_ext_1 where rownum create directory upload_log_dir as '/tmp/upload_log';
Directory created。
-- 5。 重建外部表,将log和bad指向新途径
SQL> drop table analog_tmp_entrypage_ext_1 purge;
Table dropped。
SQL> create table analog_tmp_entrypage_ext_1(
2 PROFILE_ID NUMBER(22),
3 REPORT_TIME NUMBER(22),
4 SESSION_ID NUMBER(22),
5 URL VARCHAR2(2048)
6 )
7 organization external
8 (type oracle_loader
9 default directory upload_dir
10 access parameters
11 (records delimited by newline
12 badfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P。
bad'
13 logfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P。log'
14 fields terminated by X'05'
15 missing field values are null
16 (PROFILE_ID, REPORT_TIME, SESSION_ID, URL)。