1

我目前正在开发一个导入 oracle dbs 的应用程序。为了做到这一点,我正在使用Data Pump原始的 imp 客户端(版本12.2.0.1)。但是我不能对11gr2数据库使用那个 imp 客户端,我需要使用11gr2imp 客户端。

我已经拥有从我的一个数据库中获得的客户端和库,11gr2但是,如果我尝试执行它,我会收到以下错误:

未找到消息 100;产品=RDBMS、设施=IMP 没有消息文件:版本 11.2.0.3.0 - 2018 年 1 月 5 日星期五 18:28:21 生产

版权所有 (c) 1982, 2011, Oracl

导入实用程序名称格式无效

验证 ORACLE_HOME 是否设置正确

导入未成功终止

IMP-00000:未找到消息 0;没有产品=RDBMS、设施=IMP 的消息文件

有人可以指出如何让两个客户在同一台​​机器上工作吗?提前致谢。

[更新] 我正在使用 Red Hat OS,这是 $ORACLE_HOME 的输出:/root/oracle/instantclient_12_2

我尝试使用完整路径并将文件放在 ORACLE_HOME 中,但仍然出现相同的错误。谢谢!!!

4

3 回答 3

1

在 Windows 机器上,我通常将目录(使用CD命令)更改为包含我想要使用的 IMP 的目录,例如:

C:\>
C:\>cd C:\oraclexe\app\oracle\product\11.2.0\server\bin

C:\oraclexe\app\oracle\product\11.2.0\server\bin>imp help=y

Import: Release 11.2.0.2.0 - Production on Sub Sij 6 06:45:43 2018

或者,如果您通过指定其可执行文件的完整路径来调用这些实用程序,例如

C:\>
C:\>C:\oraclexe\app\oracle\product\11.2.0\server\bin\imp help=y

Import: Release 11.2.0.2.0 - Production on Sub Sij 6 06:47:30 2018

我希望你能做你想做的事。

于 2018-01-06T05:50:41.120 回答
1

您的问题很可能与设置LD_LIBRARY_PATHPATHInstant Client 目录有关。您可以在 bash shell 脚本中执行所有设置,例如 . bash_profile, .profile, .bashrc:

  1. 首先设置

    ORACLE_HOME=/root/oracle/instantclient_12_2; export ORACLE_HOME
    
  2. 将包含 Instant Client 库的目录的名称添加到LD_LIBRARY_PATH. 删除任何其他 Oracle 目录。例如,要LD_LIBRARY_PATH在 Bourne 或 Korn shell 中进行设置,请使用以下语法:

    LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH
    

    或者,要LD_LIBRARY_PATHCshell 中设置,请使用以下语法:

    % setenv LD_LIBRARY_PATH 
    $ORACLE_HOME/lib:$LD_LIBRARY_PATH
    
  3. 确保从 安装的 Tools 可执行文件RPM是在您的PATH. 例如,要对此进行测试,您可以输入which impdpwhich should return $ORACLE_HOME/bin/impdp。如果没有,则从 中删除任何其他 Oracle 目录PATH,或放在$ORACLE_HOME/bin其他 Tools 可执行文件之前PATH,或使用绝对或相对路径启动 Tools Instant Client。例如,PATH在 bash shell 中设置:

    PATH=/usr/bin:${PATH}:${ORACLE_HOME}:${ORACLE_HOME}/bin
    export PATH
    
  4. 设置您的语言环境所需的 Oracle 全球化变量。如果未设置任何变量,将假定默认语言环境。

    NLS_LANG=AMERICAN_AMERICA.UTF8
    export NLS_LANG
    
于 2018-01-06T17:55:44.100 回答
0

经过研究,我在尝试复制imp客户端版本11cr2时没有复制所有必需的文件。我通过复制 $ORACLE_HOME 中的所有文件并将该位置作为我的新 $ORACLE_HOME 解决了这个问题。之后,只需将 lib 文件和 imp 从 12cr2 客户端安装复制到 $ORACLE_HOME 并将 imp 12cr2 重命名为“imp12cr2”。

现在,如果我想使用 11.2,我使用imp,如果想使用 12cr2,我使用imp12cr2

于 2018-01-10T00:16:56.687 回答