首頁  >  文章  >  資料庫  >  oracle怎麼轉換字符集

oracle怎麼轉換字符集

青灯夜游
青灯夜游原創
2022-01-07 16:06:374379瀏覽

在oracle中,可以利用「ALTER DATABASE」字元集語句來轉換字元集,語法格式為「ALTER DATABASE [db_name] CHARACTER SET new_character_set;」。

oracle怎麼轉換字符集

本教學操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn