Определение параметра 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
хотя файл является двоичным искажением, есть некоторые читаемые человеком текстовые выдержки. Я видел там следующие строки, и я думаю, что это отвечает на мой вопрос:
<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, и действительно это сработало для меня для этой же проблемы.