Par*_*gat 6 sql oracle oracle-xe oracle11g oracle-apex
我正在使用 Oracle 11g 快捷版。目前,当我使用SELECT * FROM nls_database_parameters;它检查 NLS 字符集参数时,它给出了默认值:
NLS_CHARACTERSET: AL32UTF8
NLS_NCHAR_CHARACTERSET: AL16UTF16
Run Code Online (Sandbox Code Playgroud)
我想将这两个参数都设置为 UTF8。我怎么能这样做?我刚刚安装了Oracle 11g XE,所以除了Oracle本身需要的数据外,没有数据。
小智 6
这对我有用,其中应用程序正在检查UTF8 rather than AL32UTF8.
SQL> shutdown immediate;
SQL> startup restrict
SQL> select name from v$database;
SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8 ;
SQL> select value from NLS_DATABASE_PARAMETERS
where parameter=’NLS_CHARACTERSET’;
SQL> shutdown immediate;
SQL> startup
Run Code Online (Sandbox Code Playgroud)
也许这有效: --> Oracle 10.1 或更高版本不再支持。alter database character set UTF8;
然而,你真的确定要改变吗?AL32UTF8 实际上是UTF-8。
在 Oracle 上,您还有一个名为 的字符集UTF8,这是一种用词不当,意思是字符集CESU-8。据我所知,这就像“UTF-8 as of Unicode version 3 from 1999”。只要您使用的 Unicode 字符少于 65535(基本多语言平面)AL32UTF8并且UTF8是相同的。
请注意,仅当新字符集是旧字符集的严格超集时,此命令才有效。即,您可以从 更改为US7ASCII或AL32UTF8,WE8ISO8859P1但不能从 更改WE8ISO8859P1为AL32UTF8。