而不是创建存储过程&使用Oracle中的util包将每个记录从一个表写入一个平面文件,以所需的列分隔方式(即'#|'),我可以使用expdp执行相同的操作吗?
这将有助于以更快的方式提取数据。
请建议。
答案 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