天天看點

oracle檢視編碼以及修改編碼,[Err] ORA-01704: string literal too long,字元串文字太長,dmp檔案導入導出,oracle導入導出1、情況解釋2、解決過程

1、情況解釋

1.1、英文報錯截圖

oracle檢視編碼以及修改編碼,[Err] ORA-01704: string literal too long,字元串文字太長,dmp檔案導入導出,oracle導入導出1、情況解釋2、解決過程

1.2、配置環境變量,然後可以看到中文的提示

TNS_ADMIN:oracle根目錄\product\11.2.0\dbhome_1\NETWORK\ADMIN

NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

oracle檢視編碼以及修改編碼,[Err] ORA-01704: string literal too long,字元串文字太長,dmp檔案導入導出,oracle導入導出1、情況解釋2、解決過程

1.3、問題原因解釋

  場景描述:

      通過navicat連接配接了oracle資料庫,然後通過navicat導出了xx.sql的檔案。但是更換了不同的伺服器的oracle資料庫之後,使用navicat導入的時候報錯。報錯如上圖。

  導緻問題原因:

     資料庫的字元編碼不同,oracle預設的是英文的編碼。換成中文之後,位元組數就不一樣了。

2、解決過程

1、打開控制台,用sys賬号連接配接上

C:\Users\Administrator>sqlplus sys/pass as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 7月 13 19:09:15 2020

Copyright (c) 1982, 2010, Oracle.  All rights reserved.
連接配接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> 
           

2、關閉資料庫

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
           

3、mount

SQL> startup mount;
ORACLE 例程已經啟動。

Total System Global Area 1.3629E+10 bytes
Fixed Size                  2188688 bytes
Variable Size            7113542256 bytes
Database Buffers         6476005376 bytes
Redo Buffers               37343232 bytes
資料庫裝載完畢。
           

解釋:  startup nomount:啟動執行個體,讀取參數檔案,配置設定記憶體空間,啟動背景程序,打開跟蹤檔案和報警檔案。startup mount:裝載資料庫,打開控制檔案。nomount方式下還沒有讀取控制檔案,該選項用于在資料庫的控制檔案全部損壞,需要重新建立資料庫控制檔案或建立一個新的資料庫時使用。mount 選項下并沒有打開資料檔案,該選項可以用來修改資料庫的運作模式或進行資料庫恢複。

4、設定session 

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

系統已更改。

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

系統已更改。

SQL>  ALTER SYSTEM SET AQ_TM_PROCESSES=0;

系統已更改。
           

5、啟動資料庫 

SQL> alter database open;

資料庫已更改。
           

6、修改字元集

會報錯,提示我們的字元集:新字元集必須為舊字元集的超集,這時我們可以跳過超集的檢查做更改:

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
第 1 行出現錯誤:
ORA-12712: 新字元集必須為舊字元集的超集
           

加了TERNAL_USE,就會使oracle繞過了子集與超集的驗證,這條語句和上面的語句内部操作時完全相同的。

SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

資料庫已更改。
           

7、關閉,重新啟動

SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup;
ORACLE 例程已經啟動。

Total System Global Area 1.3629E+10 bytes
Fixed Size                  2188688 bytes
Variable Size            7113542256 bytes
Database Buffers         6476005376 bytes
Redo Buffers               37343232 bytes
資料庫裝載完畢。
資料庫已經打開。
SQL>
           

3、導入和導出指令

導入和導出指令,預設路徑都是D:\app\Administrator\admin\orcl\dpdump。導出預設路徑這個,如果改了就報錯。導入指令預設路徑也是這個,如果加路徑就會報錯。

impdp 賬号/密碼@127.0.0.1/orcl dumpfile= backupfile.dmp full=y

expdp 賬号/密碼@127.0.0.1/orcl dumpfile=backupfile.dmp logfile=logfile.log

繼續閱讀