在oracle中,可以利用「ALTER DATABASE」字元集語句來轉換字元集,語法格式為「ALTER DATABASE [db_name] CHARACTER SET new_character_set;」。
本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。
Oracle-字元集轉換
字元集是依照一定的字元編碼方案,對一組特定的符號,分別賦予不同數值編碼的集合。
日常使用時,服務端與客戶端字元集需一致。
--服务端 select * from nls_database_parameters; --客户端 SELECT USERENV('LANGUAGE') FROM DUAL;
資料庫字元集調整最常用的是ALTER指令和完整的匯出和匯入兩種。
第一種,ALTER DATABASE字元集語句是遷移字元集的最快方法,但只能在特殊情況下使用。
ALTER DATABASE字元集語句不會執行任何資料轉換,因此,當且僅當新字元集是目前字元集的嚴格超集時,才可以使用它。
--ALTER DATABASE字符集语句的语法如下,db_name为可选项: ALTER DATABASE [db_name] CHARACTER SET new_character_set;
第二種
資料幫浦(EXPDP/IMPDP)方式代價較高,耗時且佔用資源多,且需要在遷移時對資料進行掃描,確認在遷移時是否會發生資料截斷和字元集轉換錯誤。
資料庫字元集遷移有兩個階段:資料掃描和資料轉換。
在變更資料庫字元集之前,使用字元集掃描工具確定在變更資料庫字元集之前所需的工作量。
使用資料泵匯入匯出腳本範例,腳本需在資料庫伺服器執行:
--查看管理员目录 确认导出文件位置路径 SELECT * FROM dba_directories; --expdp导出 带有条件 expdp 用户/密码@服务名 directory=DATA_PUMP_DIR dumpfile=数据文件文件名.dmp logfile=日志文件文件名.log tables=导出表名 query='" where lsh in (select lsh from table_1 where code !='1' and flag='1')"' CONTENT选项可选导出结构或数据 导出格式默认为.dmp--impdp导入 导入时重命名 存在表则增加数据 主键重复数据忽略 导入时也可以限定导入时所属表空间 impdp 用户/密码@服务名 directory=DATA_PUMP_DIR dumpfile=数据文件文件名.dmp REMAP_TABLE =导出用户名.导出表名:导入表名 TABLE_EXISTS_ACTION=append data_options=skip_constraint_errors
建議教學:《Oracle教學》
以上是oracle怎麼轉換字符集的詳細內容。更多資訊請關注PHP中文網其他相關文章!