java zhs16gbk_(转)oracle xe 手工建立ZHS16GBK字符集数据库

本文详细介绍了如何手动创建一个使用ZHS16GBK字符集的OracleXE数据库,包括修改配置文件、执行创建脚本、调整数据库参数等步骤,确保数据库支持中文字符正确存储。
摘要由CSDN通过智能技术生成

CREATE DATABASE XE

CONTROLFILE REUSE

LOGFILE

GROUP 1 'E:\ORADATA\TEST\REDO01.LOG' SIZE 10M,

GROUP 2 'E:\ORADATA\TEST\REDO02.LOG' SIZE 10M,

GROUP 3 'E:\ORADATA\TEST\REDO03.LOG' SIZE 10M

DATAFILE 'E:\ORADATA\TEST\SYSTEM01.DBF' SIZE 400M

AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE 'E:\ORADATA\TEST\SYSAUX01.DBF' SIZE 250M

AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL

DEFAULT TEMPORARY TABLESPACE temp

TEMPFILE 'E:\ORADATA\TEST\TEMP01.DBF' SIZE 100M

AUTOEXTEND ON NEXT 100M MAXSIZE 8000M

UNDO TABLESPACE undo

DATAFILE 'E:\ORADATA\TEST\undo01.DBF' SIZE 200M

AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

USER SYS IDENTIFIED BY SYS

USER SYSTEM IDENTIFIED BY SYS

;

在执行这个脚本以前,有3点要注意:

1 要修改F:\oraclexe\app\oracle\product\10.2.0\server\config\scripts\init.ora'

F:\oraclexe\app\oracle\product\10.2.0\server\config\scripts\test.ora'

把所有路径改成E:\ORADATA\TEST及其子目录,为此我们需要在E:\ORADATA\TEST下建立

bdump等目录,这些目录可以从现有的XE数据库F:\oraclexe\app\oracle\admin\XE复制得到。

2 要去掉EXTENT MANAGEMENT LOCAL语句否则执行出错。(没有找出原因)

CREATE DATABASE XE

*

第 1 行出现错误:

ORA-25146: EXTENT MANAGEMENT ?????

3 test.ora中的db_name不能改变,否则执行出错。(没有找出原因)

ORA-02778: Name given for the log directory is invalid

具体执行步骤(以Windows XP为例)

1在cmd命令行窗口执行 net start oracleservicexe

C:\Documents and Settings\Administrator>net start oracleservicexe

OracleServiceXE 服务正在启动 .........

OracleServiceXE 服务已经启动成功。

2 以sys用户登录

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 5月 30 22:07:45 2006

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn / as sysdba

已连接。

3 查看现有的字符集设置

SQL> set lines 140

SQL> select * from nls_database_parameters;

PARAMETER

------------------------------------------------------------

VALUE

-------------------------------------------------------------------

------------------------------------------------------------

NLS_LANGUAGE

AMERICAN

NLS_TERRITORY

AMERICA

NLS_CURRENCY

$

NLS_ISO_CURRENCY

AMERICA

NLS_NUMERIC_CHARACTERS

.,

NLS_CHARACTERSET

AL32UTF8

NLS_CALENDAR

GREGORIAN

NLS_DATE_FORMAT

DD-MON-RR

NLS_DATE_LANGUAGE

AMERICAN

NLS_SORT

BINARY

NLS_TIME_FORMAT

HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT

DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT

HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT

DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY

$

NLS_COMP

BINARY

NLS_LENGTH_SEMANTICS

BYTE

NLS_NCHAR_CONV_EXCP

FALSE

NLS_NCHAR_CHARACTERSET

AL16UTF16

NLS_RDBMS_VERSION

10.2.0.1.0

已选择20行。

SQL> select lengthb('择') from dual;

LENGTHB('择')

-------------

3

已选择 1 行。

我们可以看到,当前AL32UTF8字符集1个汉字占用3个字节

4 关闭数据库,但不停止服务

QL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

5 用修改过的pfile test.ora启动数据库(nomount)

SQL> startup nomount pfile='F:\oraclexe\app\oracle\product\10.2.0\server\config\scripts\test.ora'

ORACLE 例程已经启动。

Total System Global Area  285212672 bytes

Fixed Size                  1287016 bytes

Variable Size              92277912 bytes

Database Buffers          188743680 bytes

Redo Buffers                2904064 bytes

6 执行建立数据库脚本

SQL> CREATE DATABASE XE

2  CONTROLFILE REUSE

3  LOGFILE

4  GROUP 1 'E:\ORADATA\TEST\REDO01.LOG' SIZE 10M,

5  GROUP 2 'E:\ORADATA\TEST\REDO02.LOG' SIZE 10M,

6  GROUP 3 'E:\ORADATA\TEST\REDO03.LOG' SIZE 10M

7  DATAFILE 'E:\ORADATA\TEST\SYSTEM01.DBF' SIZE 400M

8  AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED

9  SYSAUX DATAFILE 'E:\ORADATA\TEST\SYSAUX01.DBF' SIZE 250M

10  AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED

11  DEFAULT TEMPORARY TABLESPACE temp

12  TEMPFILE 'E:\ORADATA\TEST\TEMP01.DBF' SIZE 100M

13  AUTOEXTEND ON NEXT 100M MAXSIZE 8000M

14  UNDO TABLESPACE undo

15  DATAFILE 'E:\ORADATA\TEST\undo01.DBF' SIZE 200M

16  AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED

17  CHARACTER SET ZHS16GBK

18  NATIONAL CHARACTER SET AL16UTF16

19  USER SYS IDENTIFIED BY SYS

20  USER SYSTEM IDENTIFIED BY SYS

21  ;

数据库已创建。

7 执行创建数据字典和程序包的系统SQL脚本

@F:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catalog.sql

@F:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catproc.sql

大约需要10几分钟

8 关闭数据库,但不停止服务

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

9 用修改过的pfile test.ora启动数据库

SQL> startup  pfile='F:\oraclexe\app\oracle\product\10.2.0\server\config\scripts\test.ora'

ORACLE 例程已经启动。

Total System Global Area  285212672 bytes

Fixed Size                  1287016 bytes

Variable Size              92277912 bytes

Database Buffers          188743680 bytes

Redo Buffers                2904064 bytes

数据库装载完毕。

数据库已经打开。

10 查看新建数据库的字符集设置

SQL> set lines 140

SQL> select * from nls_database_parameters;

PARAMETER                      VALUE

------------------------------ -------------------------------------------------

-------------------------------

NLS_LANGUAGE                   AMERICAN

NLS_TERRITORY                  AMERICA

NLS_CURRENCY                   $

NLS_ISO_CURRENCY               AMERICA

NLS_NUMERIC_CHARACTERS         .,

NLS_CHARACTERSET               ZHS16GBK

NLS_CALENDAR                   GREGORIAN

NLS_DATE_FORMAT                DD-MON-RR

NLS_DATE_LANGUAGE              AMERICAN

NLS_SORT                       BINARY

NLS_TIME_FORMAT                HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY              $

NLS_COMP                       BINARY

NLS_LENGTH_SEMANTICS           BYTE

NLS_NCHAR_CONV_EXCP            FALSE

NLS_NCHAR_CHARACTERSET         AL16UTF16

NLS_RDBMS_VERSION              10.2.0.1.0

已选择20行。

SQL> select lengthb('A') from dual;

LENGTHB('A')

------------

1

已选择 1 行。

SQL> select lengthb('择') from dual;

LENGTHB('择')

-------------

2

已选择 1 行。

可见我们新的数据库的确是ZHS16GBK字符集,1个汉字占用2个字节

11 要启动旧数据库(因为新旧数据库同名,而且oracle xe限制同时只能打开一个数据库)

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  285212672 bytes

Fixed Size                  1287016 bytes

Variable Size              96472216 bytes

Database Buffers          184549376 bytes

Redo Buffers                2904064 bytes

数据库装载完毕。

数据库已经打开。

----

如果以后要用spfile自动新建数据库

SQL> create spfile from pfile='D:\oraclexe\app\oracle\product\10.2.0\server\config\scripts\test.ora';

文件已创建。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 285212672 bytes

Fixed Size 1287016 bytes

Variable Size 92277912 bytes

Database Buffers 188743680 bytes

Redo Buffers 2904064 bytes

数据库装载完毕。

数据库已经打开。

SQL> select lengthb('择') from dual;

LENGTHB('择')

-------------

2

已选择 1 行。

远程登录,客户端也需要10g

SQL> conn system/sys@//10.6.xx.xx:1521/XE

已连接。

SQL> conn sys/sys@//10.6.xx.xx:1521/XE as sysdba

已连接。

[url]http://www.itpub.net/558697.html[/url]

的问题也算得到了解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值