問題:
關聯兩張數據表的字段查詢符合條件的記錄時,由於字段的屬性值是中文,肉眼可見的相同,在計算機看來卻是不同的。
任何時候,
數據庫服務端總是按照自己的字符集設置完成數據存取的;
數據庫客戶端是按照本地系統的字符集設置完成數據存取的;
在實際通信時,數據庫客戶端還會告知數據庫服務端應採用數據庫客戶端字符集格式編譯字符;
因此,關鍵在於保證 系統變量的字符集 和 數據庫的字符集 一致,才能保證數據庫服務端按正確的格式編譯字符。
解決辦法:
· 數據庫服務器字符集: select * from v$nls_parameters, 設置系統環境變量 NLS_CHARACTERSET = AL32UTF8;
· 數據庫客戶端字符集: select 'AMERICAN_AMERICA.'||PROPERTY_VALUE from DATABASE_PROPERTIES,
設置環境變量 NLS_LANG = AMERICAN_AMERICA.AL32UTF8;
· 重啓PLSQL,再次查詢。