1. 程式人生 > >oracle導入sql文件

oracle導入sql文件

有時 bash 端口 CA 數據庫服務器 操作 oracle 服務器 公司

公司以前都是用dmp操作數據導入導出,最近從別的地方人家給是sql文件數據庫文件,不得不學習一下如何導入大文件的sql,好應對各種突發情況。
1、首先得會使用sqlplus連接遠程數據庫
sqlplus 用戶名/密碼@遠程數據庫ip:端口/實例名
2、連接成功之後使用命令

sql>@E:\areadata.sql;
sql>@/opt/oracle/area.sql;

有時候中文會出現亂碼問題,或者報錯。例如:

ERROR:
ORA-01756: quoted string not properly terminated

此時,需要排查數據庫服務器的字符集和client的字符集
1.排查數據庫服務器字符集:

sql>select userenv(‘language‘) from dual;
---AMERICAN_AMERICA.ZHS16GBK【此處的字符集是這個】

2.排查client字符集
在windows平臺下,就是註冊表裏面相應OracleHome的NLS_LANG。還可以在dos窗口裏面自己設置,比如:
set nls_lang=AMERICAN_AMERICA.ZHS16GBK

在linux下,修改bash_profile文件

$ vi .bash_profile
NLS_LANG=‘AMERICAN_AMERICA.ZHS16GBK‘; export NLS_LANG

這個也可能跟sql文件有關,大家可以試試設置client字符集,多試兩個應該就可以了。

另外有些文件裏面可能會出現一些空格之類的字符,到了sqlplus裏面就會變成?,例如下面的等待輸入,往往會影響導入的時間:
sql>Enter value for nbsp;

所以需要在執行sql>@E:\areadata.sql時先設置一下關閉替代變量功能
sql>set difine off;
這樣子就不會出現導入時等待的情況了,大大提高了導入文件的效率。

oracle導入sql文件