您好,登錄后才能下訂單哦!
這篇文章主要講解了“GBase8s數據庫有什么特點”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“GBase8s數據庫有什么特點”吧!
將數據導入到GBase8s數據庫中,我們會進行建庫、建表、建字段的操作,當這些操作完成以后在初期導入一些測試或樣例數據的時候都比較順利。但有時到了正式環境,數據變多以后,里面藏著一些意向不到的特殊字符或生僻字會導致我們導入失敗。所以以此文檔記錄在GBase8s建庫過程中對生僻字處理的注意事項
n DB_LOCALE
含義:
通過 DB_LOCALE 環境變量設置的數據庫語言環境指定數據庫服務器用于正確解釋特定數據庫中語言環境相關的數據類型(NCHAR 和 NVARCHAR)所需的語言、地域和代碼集。DB_LOCALE 中指定的代碼集確定哪些字符在任何字符列中都是有效的,并且確定數據庫對象(如數據庫、表、列和視圖)的名稱。數據庫服務器使用 DB_LOCALE 環境變量指定的數據庫代碼集將數據傳入和傳出數據庫。
用途:
1. 在客戶機應用程序和數據庫服務器交換字符數據時,如果 DB_LOCALE 環境變量(在客戶機計算機上)的值與 CLIENT_LOCALE 的值不同,客戶機應用程序將執行代碼集轉換。 代碼集轉換防止這兩種代碼集不同時發生數據破壞。
2. 在客戶機應用程序請求連接時,它將包括 DB_LOCALE(如果已設置)的信息發送至數據庫服務器。
3. 在確定如何設置服務器處理語言環境的數據庫信息時,數據庫服務器使用 DB_LOCALE。
4. 在客戶機應用程序嘗試打開數據庫時,數據庫服務器將客戶機應用程序傳遞的 DB_LOCALE 環境變量的值與數據庫中存儲的數據庫語言環境進行比較。
5. 當數據庫服務器存取與語言環境相關的數據類型的列時,數據庫服務器使用 DB_LOCALE 指定的語言環境。
6. 當數據庫服務器創建新數據庫時,它將檢查數據庫語言環境(DB_LOCALE),以確定如何在數據庫的系統目錄中存儲字符信息。此信息包括諸如如何處理正則表達式、比較字符串以及確保代碼集的正確使用的操作。
所以如果我們的數據庫需要支持中文字符,我們必須在建庫的時候必須將該變量設置為zh_CN.utf8或zh_cn.GB18030-2000。否則如果按照en_us.8859-1進行建庫后,在插入中午字符后將會變成亂碼。以下是字符集名稱及編碼對照表
字符集名稱 | 編碼 |
8859-1 | 819 |
gb | 57357 |
GB2312-80 | 57357 |
utf8 | 57372 |
big5 | 57352 |
GB18030-2000 | 5488 |
字符集名稱及編碼對照表
n GL_USEGLU
含義:
如果想使NCHAR 和 NVARCHAR數據類型的字段內的數據支持unicode,則必須對GL_USEGLU環境變量進行使用設置
所以如果我們的數據庫不僅需要支持中文,還需要支持生僻字符,則必須在建庫前開啟此變量
我們需要把生僻字“”插入到數據庫中,根據剛才的描述我們需要正確設置兩個地方才能保證“”字成功入庫
我們首先使用echo $DB_LOCALE;命令查看當前該變量的值
發現當前該變量的值不是zh_CN.utf8或zh_cn.GB18030-2000
所以我們在建立數據庫之前,需要先將變量進行修改
其次我們需要使用onstat -g env命令確認GL_USEGLU是否進行了設置
當這兩個變量都設置完畢后,我們使用dbaccess建立數據庫testdb3
建表操作、新增生僻字記錄,詳情如下圖所示,操作成功
使用如下語句確認當前數據庫的編碼,顯示的是zh_CN.57372, 根據剛才的字符集名稱及編碼對照表,可知編碼57372對應的字符集名稱是utf8
SELECT * FROM sysmaster:sysdbslocale WHERE dbs_dbsname like 'testdb3%';
以下是我們測試當不設置GL_USEGLU變量的情況
我們通過unset GL_USEGLU命令變量使GL_USEGLU失效
使用onstat -g env命令對當前環境變量進行查看,發現已經沒有了 GL_USEGLU環境變量
此時我們通過dbaccess建立了testdb4數據庫
我們再插入剛才的生僻字“”將會如下圖所示報錯 34389 Illegal character 非法字符
再來測試插入正常漢字的情況
插入正常漢字是沒有問題的
感謝各位的閱讀,以上就是“GBase8s數據庫有什么特點”的內容了,經過本文的學習后,相信大家對GBase8s數據庫有什么特點這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。