Oracle-12c

我需要在 pfile 中添加什麼來更改 NLS_CHARACTERSET?

  • October 20, 2021

我不是數據庫專家。我正在為本地開發環境使用 docker Oracle 12c 數據庫。它是來自 Oracle 的官方圖像,但他們沒有提供在數據庫創建期間更改 NLS_CHARARACTERSET 的任何選項,並且預設為 AL32UTF8。我需要匹配我們使用 WE8MSWIN1252 的測試數據庫。我曾嘗試在數據庫啟動後修改字元集,但似乎會導致很多問題,因為 WE8MSWIN1252 不是 AL32UTF8 的超集。所以我想在一開始就正確設置它。我找到了一種在啟動時修改 pfile 的方法,我認為它應該設置在哪裡,但我不知道該放什麼。

ORCLCDB.__data_transfer_cache_size=0
ORCLCDB.__db_cache_size=0
ORCLCDB.__inmemory_ext_roarea=0
ORCLCDB.__inmemory_ext_rwarea=0
ORCLCDB.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
*.__shared_io_pool_size=0
*.java_pool_size=0
*.large_pool_size=0
*.shared_pool_size=0
*.streams_pool_size=0
*.audit_file_dest='/u02/app/oracle/audit/ORCLCDB'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/u02/app/oracle/oradata/ORCLCDB/cntrlORCLCDB.dbf','/u03/app/oracle/fast_recovery_area/ORCLCDB/cntrlORCLCDB2.dbf'
*.db_block_size=8192
*.db_files=250
*.db_name='ORCLCDB'
*.db_recovery_file_dest='/u03/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=17814m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLCDBXDB)'
*.enable_pluggable_database=true
*.filesystemio_options='setall'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.db_domain='localdomain'
*.sga_target=5120M
*.pga_aggregate_target=3072M
*.db_domain='localdomain'
*.sga_target=1280M
*.pga_aggregate_target=768M

我想也許我可以在文件底部添加它,但它不起作用並且數據庫無法啟動:

*.nls_characterset='WE8MSWIN1252'

結果是

ERROR at line 1:
ORA-01078: failure in processing system parameters
ORA-32003: error occured processing parameter 'nls_characterset'
LRM-00101: unknown parameter name 'nls_characterset'

我需要更新什麼才能讓它使用最初創建的這個字元集?

我會看看create database 命令,特別是“國家字元集”。

值得檢查此文件 ID,因為它看起來與您的上下文相似。

在 8i、9i、10g 和 11g 中將 NLS_CHARACTERSET 更改為 AL32UTF8 / UTF8 (Unicode)(文件 ID 260192.1)

引用自:https://dba.stackexchange.com/questions/301376