Oracle

從 SQL*Plus 中設置編碼

  • March 7, 2013

我有大量包含 SQL 命令的文件,這些文件是通過使用@@運算符的 SQL*Plus 腳本執行的。我在第三方電腦上執行腳本(甚至通過電子郵件發送),所以我想讓它盡可能獨立。

文件編碼為 Win-1252。目前,我需要NLS_LANG在執行腳本之前設置環境變數:

C:\> SET NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252

C:\> echo exit | sqlplus foo/bar@//example.com/xe @install.sql

這可行,但我想知道是否可以使用 SQL 或 SQL*Plus 命令更改客戶端編碼。(或者至少讀取該值並在它不匹配時中止執行。)

NLS_LANG不能從會話內部更改,但其他設置可以。

一旦建立數據庫連接(即: 的第二部分NLS_LANG),您就無法更改字元集,但您可以使用以下命令更改語言:

alter session set NLS_LANGUAGE=SPANISH

…和領土:

alter session set NLS_TERRITORY=SPAIN

引用自:https://dba.stackexchange.com/questions/36170