Определение параметра NLS LANG для существующего файла дампа базы данных Oracle

нам передали файл дампа другой командой, которая уехала на оставшуюся часть года. Когда мы пытаемся импортировать дамп в нашу собственную базу данных, мы получаем следующую ошибку:

IMP-00038: Could not convert to environment character set's handle

при некоторых исследованиях мы предполагаем, что у нас есть несоответствие между настройкой nls_lang исходной машины и нашей локальной машины. В настоящее время у нас нет никаких средств для проверки значения NLS_LANG на исходной машине.

Итак, имея только файл дампа в нашем руки, есть ли способ выяснить значение NLS_LANG, с которым был выполнен экспорт? Судя по всему, мы должны иметь возможность переопределить переменную среды NLS_LANG перед запуском клиента импорта (imp).

другое дело, дамп был сделан из экземпляра 11g, а наша версия imp-10. Я читал,что imp не совместим с переадресацией. Может ли это быть проблемой здесь (вместо несоответствия NLS_LANG)?

5 ответов


самый простой способ в Unix:

#>imp username/password file=test.dmp show=y

Import: Release 10.2.0.3.0 - Production on Fri Nov 26 08:38:47 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

Export file created by EXPORT:V10.02.01 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses WE8ISO8859P1 character set (possible charset conversion)

версия exp / imp является проблемой: Обычно я использую программу экспорта V10 и подключаю ее к базе данных V11. Убедитесь, что у вас есть псевдоним для dev11 в файл tnsnames.ora в oracle_home от dev10.

hostname{oracle}# . oraenv
ORACLE_SID = [oracle] ? dev10
hostname{oracle}#
hostname{oracle}#>exp username/password@dev11 full=y dumpfile=dump.exp

Ates, попробуйте impdp-иногда это может помочь : -)


хотя файл является двоичным искажением, есть некоторые читаемые человеком текстовые выдержки. Я видел там следующие строки, и я думаю, что это отвечает на мой вопрос:

<CHARSET>AL32UTF8</CHARSET><NCHARSET>AL16UTF16</NCHARSET>
...
NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA'

другое дело, дамп был сделан из экземпляра 11g и нашего imp версия 10. Я читал, что imp нет вперед совместимый. Может ли это быть проблема здесь (вместо NLS_LANG несоответствие)?

A: вы правы; вы не можете импортировать файл дампа, созданный с данным клиентом Oracle, так как клиент Oracle вашей целевой базы данных Oracle старше.

хотя не рекомендуется, вы можете экспортировать новая исходная база данных Oracle (т. е. 10g+) с старше клиент Oracle (т. е. 10g), так как вы используете ту же версию клиента Oracle для импорта в ваш старше целевая база данных oracle (т. е. 10g).

предположения: версия клиента Oracle исходной базы данных совпадает - или новее-с целевой версией базы данных Oracle. Обратите внимание, что инструменты смешивания Datapump (11g) и ИМП (-10g) импорт утилита не работает.

Interessant ссылке использование различных выпусков и версий Export


возможно, он был экспортирован с помощью expdp....попробуй!--1--> ....это то, что я видел при поиске в google, и действительно это сработало для меня для этой же проблемы.