Oracle外部表的创建Oracle认证考试

文章作者 100test 发表时间 2009:07:25 11:16:39
来源 100Test.Com百考试题网


"tbbnc">   记录一下自己创建外部表的过程,因为中间出了一些小错误。
  -- 1. 创建文件目录
  SQL>. create directory upload_dir as /storagepool/upload.
  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 X05
  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>. 0select * from analog_tmp_entrypage_ext_1 where rownum <. 2.
  0select * from analog_tmp_entrypage_ext_1 where rownum <. 2
  *
  ERROR at line 1:
  ORA-29913: error in executing ODCIEXTTABLEOPEN callout
  ORA-29400: data cartridge error
  KUP-04063: unable to open log file ANALOG_TMP_ENTRYPAGE_EXT_1_12190.log
  OS error Permission denied
  ORA-06512: at "SYS.ORACLE_LOADER", line 19
  -- 4. 创建log文件和bad文件的路径,指向tmp分区。
  SQL>. create directory upload_log_dir as /tmp/upload_log.
  Directory created.
  -- 5. 重建外部表,将log和bad指向新路径
  SQL>. 0drop table analog_tmp_entrypage_ext_1 purge.
  Table 0dropped.
  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 X05
  15 missing field values are null
  16 (PROFILE_ID, REPORT_TIME, SESSION_ID, URL)
  17 )
  18 location(weblog.analog_tmp_entrypage_0.dat)
  19 ).
  Table created.
  -- 6. 重新查询,仍然报错。
  SQL>. 0select * from analog_tmp_entrypage_ext_1 where rownum <. 2.
  0select * from analog_tmp_entrypage_ext_1 where rownum <. 2
  *
  ERROR at line 1:
  ORA-29913: error in executing ODCIEXTTABLEFETCH callout

相关文章


Oracle中存储过程和函数的区别Oracle认证考试
对比Caché和Oracle在数据库的应用Oracle认证考试
软件测试的自动化测试开发小案例Oracle认证考试
Oracle字段的默认值无效的原因Oracle认证考试
Oracle外部表的创建Oracle认证考试
Oracle中生成GUID类型Oracle认证考试
C 连接Oracle提示找不到某个库Oracle认证考试
Oracle10g物理备库也可置于read_write状态Oracle认证考试
如何在UNIX下自动备份Oracle数据库Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛