ORA-39083 and ORA-01847 when restore DB
Имеем СУБД Oracle 11g + Oracle Linux 6.10
ORA-39083: Object type TABLE:"*"."USERCERT" failed to create with error:
ORA-01847: day of month must be between 1 and last day of month
ORA-39083: Object type TABLE:"*"."NOTIFYMSG" failed to create with error:
ORA-01861: literal does not match format string
Причина (в моем случае)
Некорректно настроенный файл ".bash_profile". Значения ORACLE_BASE, ORACLE_HOME, ORACLE_SID я почему-то прописал в файл "/etc/bashrc".
Решение
Переносим указанные переменные из "/etc/bashrc" в ".bash_profile". Т.о. в файле должны быть обязательно указаны:
export ORACLE_BASE=/mnt/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ORACL11B
export ORACLE_UNQNAME=ORACL11B
export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LIBPATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
export TZ=Ets/GMT-5
Также в скрипте рестора проверить наличие параметров:
export NLS_DATE_FORMAT="YYYY-MM-DD" export NLS_TIMESTAMP_FORMAT="YYYY-MM-DD HH24:MI:SS"
Для ОС Windows нужно проверить реестр:
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
- HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
- HKEY_LOCAL_MACHINE\Software\ORACLE\
*но не рекомендуется изменять данные в реестре
лучше использовать указание:
SET NLS_DATE_FORMAT=YYYY-MM-DD
SET NLS_TIMESTAMP_FORMAT=YYYY-MM-DD HH24:MI:SS
*обязательно без кавычек. Для проверки можно вывести значение переменной командой echo %NLS_DATE_FORMAT%
Комментарии
Отправить комментарий