您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關ORA-01756報錯的解決方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
今天在嘗試執行一個包含中文字符的腳本時,出現以下報錯:"ora-01756:quoted string not properly terminated"。
檢查腳本后,沒有發現引號不匹配等常見問題;拷貝其中報錯的語句到sqlplus環境下執行沒有報錯。綜上,初步斷定和數據庫字符集有關系。
1.查看Linux系統環境變量
[root@localhost Desktop]# echo $NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS32GB18030
[root@localhost Desktop]#
2.查看數據庫的userenv
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8
SQL>
3.查看數據庫的NLS_LANG
SQL> show parameter NLS_LANG
NAME TYPE VALUE
------------------------------------ -------------------------------------------- ------------------------------
nls_language string SIMPLIFIED CHINESE
SQL>
我們發現數據庫的字符集和Linux設置的字符集不一致。接下來,我們需要修改Linux的字符集,和數據庫字符集保持一致。
修改root用戶和oracle用戶下.bash_profile中的NLS_LANG設置,以root用戶為例,修改方法如下:
1.修改~/.bash_profile中的NLS_LANG設置。
[root@localhost Desktop]# vim ~/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS32GB18030"
umask 022
將紅色部分改為:
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
2.重新加載修改后的.bash_profile文件
[root@localhost oracle]#source ~/.bash_profile
注意:
修改配置后強烈建議重啟操作系統
看完上述內容,你們對ORA-01756報錯的解決方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。