2014年5月22日 星期四

Oracle - 中文輸入 出現 ORA-01756: quoted string not properly terminated



今天使用 sqlplus 測試 insert資料時 ,出現了 ORA-01756: quoted string not properly terminated  錯誤


insert into test (name) values ('大家好');


什麼...... 左看右看我的括號也沒少怎麼會出錯呢,那把中文改成英文, sql 是可以執行沒問題的

看來是中文字的問題,原來是 Client 端 與 db 端 語系不同,我們來設一下Client 端 語系

1.查詢一下DB 端的語系設定

code

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.UTF8


2.再來設定 Client 端語系
>export NLS_LANG=AMERICAN_AMERICA.UTF8




後來某天執行.sql 檔案時出現了

SP2-0734: unknown command beginning "嚜窺et SER..." - rest of line ignored.

從錯誤的訊息來看,好像不是SQL本身的問題

這時突然想到 .sql 檔編碼的問題

改成 UTF-8 編碼 檔首無BOM儲存,就可以成功執行囉。

沒有留言:

張貼留言