在全球化應用程式中使用 Unicode
您可以插入和擷取 Unicode 資料。資料會在資料庫和從屬端程式之間通透地轉換,以確保從屬端程式獨立於資料庫字元集和本國字元集。
另請參閱:
-
Oracle AI Database Globalization Support Guide,瞭解有關使用 Unicode 進行 SQL 和 PL/SQL 程式設計的詳細資訊
-
Oracle AI Database Globalization Support Guide 以取得 Unicode 程式設計的一般資訊
SQL 和 PL/SQL 中 Unicode 字串文字的表示法
有三種方式可以代表 SQL 或 PL/SQL 中的 Unicode 字串文字。
在 SQL 或 PL/SQL 中代表 Unicode 字串常值的三種方式為:
-
N'string」
範例:
N'résumé'。限制:請參閱避免在字元集轉換期間遺失資料。
-
NCHR(number)
SQL 函數 NCHR 會傳回在本國字元集中,二進位等同於數字的字元。傳回的字元具有資料類型 NVARCHAR2。
範例:
NCHR(36)代表預設國家字元集 AL16UTF16 中的 $。限制: NCHR (number) 值的可攜性僅限於使用相同本國字元集的應用程式。
-
UNISTR('string')
SQL 函數 UNISTR 會將字串轉換成本國字元集。
對於可攜性與資料保留,請使用只包含 ASCII 字元與 Unicode 編碼值的字串。Unicode 編碼值的格式為 \xxxx,其中 xxxx 是字元代碼值的十六進位值為 UCS-2 編碼格式。
範例:
UNISTR('G\0061ry')代表 'Gary'ASCII 字元轉換成資料庫字元集,然後再轉換成本國字元集。Unicode 編碼的值直接轉換成本國字元集。
另請參閱:
-
Oracle AI Database Globalization Support Guide,瞭解有關 Unicode 字串文字的詳細資訊
-
Oracle AI Database SQL Language Reference,瞭解有關 NCHR 函數的詳細資訊
-
Oracle AI Database SQL Language Reference,瞭解有關 UNISTR 函數的詳細資訊
避免在轉換字元集時發生資料遺失
作為 SQL 或 PL/SQL 敘述句的一部分,文字 (含或不含前置碼 N) 會編碼為與敘述句其他字元集相同的字元集。
在用戶端上,陳述式會以用戶端字元集 (由 NLS_LANG 參數決定) 編碼。在伺服器端,敘述句以資料庫字元集進行編碼。
當 SQL 或 PL/SQL 敘述句自從屬端傳輸至資料庫時,字元集也會隨之轉換。如果資料庫字元集不包含從屬端在文字文字所使用的所有字元,則資料會在此轉換中遺失。NCHAR 字串常值比 CHAR 文字值更為脆弱,因為它們是設計成與資料庫字元集無關。
為了避免將資料遺失轉換成不相容的資料庫字元集,您可以啟用 NCHAR 文字取代功能。如需詳細資訊,請參閱 Oracle AI Database Globalization Support Guide。