gpt4 book ai didi

Oracle dump文件表数据提取到文件(原始exp格式)

转载 作者:行者123 更新时间:2023-12-05 05:26:46 26 4
gpt4 key购买 nike

我有使用原始 exp(不是 expdp)创建的 Oracle 转储文件(EXPORT:V10.02.01,Oracle 10g)。它们仅包含四个表的表数据。

1) 我想将表数据提取到文件(平面/固定宽度、CVS 或其他文本文件)中,而不将它们导入到另一个 Oracle 数据库中。 [首选]

2) 或者,我需要一个可以将它们导入普通用户(而不是 SYSDBA)的解决方案,以便我可以使用其他工具来提取数据。

我的数据库是 11g,但如果需要,我可以找到 10g 的数据库。我有 TOAD for Oracle Xpert 11.6.1.6 作为我的处置。我是一名经验丰富的 Oracle 程序员,但我之前没有使用过 EXP/IMP。

(为保护数据,以下信息已被遮盖。)

转储文件的创建方式如下:

exp FILE=data.dmp \
LOG=data.log \
TABLES=USER1.TABLE1,USER1.TABLE2,USER1.TABLE3,USER1.TABLE4 \
INDEXES=N TRIGGERS=N CONSTRAINTS=N GRANTS=N

这是日志:

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
Note: grants on tables/views/sequences/roles will not be exported
Note: indexes on tables will not be exported
Note: constraints on tables will not be exported

About to export specified tables via Conventional Path ...
Current user changed to USER1
. . exporting table TABLE1 271 rows exported
. . exporting table TABLE2 272088 rows exported
. . exporting table TABLE3 2770 rows exported
. . exporting table TABLE4 21041 rows exported
Export terminated successfully without warnings.

提前谢谢你。

最佳答案

更新:TOAD 版本 9.7.2 将读取 EXP 生成的“dmp”文件。

从菜单中选择数据库 -> 导出 -> 导出文件浏览器。

您需要为 TOAD 安装 DBA 实用程序。无法真正保证文件已被解析正确,但数据将显示在模式浏览器的 TOAD 中。

注意:exp 实用程序生成 dmp 文件的唯一已知实用程序是 imp 实用程序。您不能自己读取转储文件。如果这样做,您将面临错误解析文件的风险。

如果您已经在 ORACLE 表中拥有数据:

要将表数据提取到文件中,请创建一个调用 SQL*PLUS 并使 SQL*PLUS 将表数据假脱机到文件中的 shell 脚本。每个表需要一个脚本。

#!/bin/sh
#NOTE: The path to sqlplus will vary on your system,
# but it is generally $ORACLE_HOME/bin/sqlplus.
#YOU NEED TO UNCOMMENT THESE LINES AND SET APPROPRIATELY.
#export ORACLE_SID=YOUR_SID
#export ORACLE_HOME=PATH_TO_YOUR_ORACLE_HOME
#export PATH=$PATH:$ORACLE_HOME/bin
sqlplus -s user/pwd@db << EOF
set pagesize 0
set linesize 0
set linesize 255
set heading off
set echo off
SPOOL TABLE1_DATA.txt
REM FOR EACH COLUMN IN TABLE1, SET THE FORMAT
COL FIELD_ID format 999,999,999
COL FIELD_DATA format a99
select FIELD_ID,FIELD_DATA from TABLE1;
SPOOL OFF
EOF

确保设置每行的行宽并设置每列的格式。请参阅上面的 FIELD_ID 以了解数字格式列和 FIELD_DATA 以了解字符列。注意:您需要从文件末尾删除“选择的 N 行”。

(您仍然可以使用 imp 实用程序将您创建的文件导入到另一个模式中。)

关于Oracle dump文件表数据提取到文件(原始exp格式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998534/

26 4 0