使用expdp - oracle从表导出数据时的列分隔符

时间:2013-07-01 10:20:21

标签: oracle

而不是创建存储过程&使用Oracle中的util包将每个记录从一个表写入一个平面文件,以所需的列分隔方式(即'#|'),我可以使用expdp执行相同的操作吗?

这将有助于以更快的方式提取数据。

请建议。

1 个答案:

答案 0 :(得分:1)

当我看到文档:Oracle® Database Utilities 11g Release 2时,expdp无法进行格式化。

但您可以使用外部表进行数据库卸载。 首先,您应该创建一个目录:

CREATE DIRECTORY mydir AS 'C:\MyDir'

然后授予对它的访问权限:

GRANT READ, WRITE ON DIRECTORY mydir TO myuser;

最后,在一步中创建一个外部表并将查询结果导出到其中:

create table mytable (
    col1 varchar2(100), col2 varchar2(100)
  ) organization external (
  type oracle_loader
  default directory mydir
  access parameters (
    records delimited by newline
    fields terminated by "#|"
  )
  location('myfile.txt')
) as select col1, col2 from anothertable;

这是一个很好的链接,可以阅读有关外部表的更多详细信息:Oracle® Database Administrator's Guide 11g Release 1