查看oracle数据库的编码及修改编码格式的方法

首先查看oracle数据库的编码

SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';

PARAMETER
--------------------
VALUE
--------------------
NLS_CHARACTERSET
AL32UTF8

这其来源于props$,这是表示数据库的字符集。

oracle客户端编码

SQL> select * from nls_instance_parameters where parameter='NLS_LANGUAGE';

PARAMETER
--------------------
VALUE
--------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE

其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表会话字符集环境

select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

再来说一下怎么修改oracle的字符集:

目前我的数据库环境的字符集是AL32UTF8,那么把它改成ZHS16GBK

1.首先以sysdba的身份登录上去 conn /as sysdba

2.关闭数据库shutdown immediate;

3.以mount打来数据库,startup mount

4.设置session

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

5.启动数据库

alter database open;

6.修改字符集

ALTER DATABASE CHARACTER SET ZHS16GBK;

这会可能会报错,提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

这条语句就可以了,TERNAL_USE提供的帮助就会使oracle绕过了子集与超集的验证,这条语句和上面的语句内部操作时完全相同的。

7.关闭,重新启动

SQL>shutdown immediate;
SQL> startup

当然字符集最好不要轻易修改,因为这会对数据库的数据有直接的影响,如果是生产环境的话,可能会造成不可估计得损失。

(0)

相关推荐

  • 修改计算机名或IP后Oracle10g服务无法启动的解决方法

    遇到的问题,问题产生原因不详.症状为,windows服务中有一项oracle服务启动不了,报出如下错误. Windows 不能在 本地计算机 启动 OracleDBConsoleorcl .有关更多信息,查阅系统事件日志.如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 2 后从网上寻得一贴,问题解决,解决原因不详,反正就是解决了. 问题描述:学校机房母盘安装Oracle10g传输到其它机器,母盘的Oracle可以正常使用,而其它机器启动Oracle服务时无法启动.

  • Oracle修改表空间大小的方法

    本文讲述了Oracle修改表空间大小的方法.分享给大家供大家参考,具体如下: 1)查看各表空间分配情况 SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name; TABLESPACE_NAME SUM(BYTES)/1024/1024 ------------------------------ -------------------- UNDOTBS1

  • Oracle客户端与plsql查询数据乱码修改成中文的快速解决方法

    1.查询ORACLE服务器的语言.地域和字符集 select * from nls_database_paameters; 查询结果如下图, NLS_LANGUAGE 表示"语言",NLS_TERRITORY 表示"地域",NLS_CHARACTSET 表示"字符集",将他们三个按照"语言_地域.字符集"的格式拼接起来,就有了"AMERICAN_AMERICA.ZHS16GBK". 下面正式的来操作: 2.

  • ORACLE查看并修改最大连接数的具体步骤

    第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter processes NAME                                 TYPE        VALUE db_writer_processes                 integer    1 gcs_server_processes                integer    0 jo

  • oracle中修改表名的几种方式

    answer1: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令) answer2: SQL> select tname from tab ; TNAME ------------------------------ TEST SQL> rename test to temp ; Table renamed. SQL> select tname from tab ; TNAME ------------------

  • oracle查看字符集后修改oracle服务端和客户端字符集的步骤

    1.oracle server端字符集查询 复制代码 代码如下: select userenv('language') from dual; server字符集修改: 将数据库启动到RESTRICTED模式下做字符集更改: 复制代码 代码如下: SQL>conn /as sysdba SQL>shutdown immediate; SQL>startup mount SQL>ALTER  SYSTEM  ENABLE  RESTRICTED  SESSION; SQL>ALT

  • oracle查看字符集和修改字符集使用详解

    一.什么是Oracle字符集Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台. 影响Oracle数据库字符集最重要的参数是NLS_LANG参数.它的格式如下: NLS_LANG = language_territory.charset它有三个组成部分(语言.地域和字符集),每个成分控制了NLS子集

  • 解决Oracle批量修改问题

    问题:根据唯一字段编码修改其它字段,修改部分数据,数量在上万条数据,数据大,一开始就卡死了!笨办法,一条一条修改不知可年可月啊.其他方法个人原因实在是无能为力.如下: update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2V'; update ka02_new set aka065=1,aka166=1 where aka060='X-P02CA-A010-A001-2W'; update ka02_new

  • 修改oracle数据库用户名及密码的方法

    改oracle数据库用户名称和密码(Linux为例),有需要的朋友可以参考下. 一.修改前准备工作: 使用ssh工具以root身份连接服务器, 然后切换到oracle用户:su - oracle(回车) 使用sqlplus连接数据库:sqlplus /nolog(回车) 以管理员身份登录sys用户:conn sys/sys as sysdba(回车) 数据库连接成功,至此准备工作完成. 二.修改用户名称. 数据库连接成功后,在SQL>提示后面继续输入: 首先查到到所需修改用户名称的用户需要:se

  • 查看oracle数据库的编码及修改编码格式的方法

    首先查看oracle数据库的编码 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER -------------------- VALUE -------------------- NLS_CHARACTERSET AL32UTF8 这其来源于props$,这是表示数据库的字符集. oracle客户端编码 SQL> select * from nls_instance

  • Oracle数据库空间满了进行空间扩展的方法

    在管理软件应用中,常常会出现数据库空间满了的问题,导致管理软件不效能出现问题或者甚至不能使用.当这种情况出现了该怎么办呢?下面就介绍下方法 方法/步骤如下所示: 1.查询用户对应的表空间,我们可以看到针对不同的数据库用户Oracle select username, default_tablespace, temporary_tablespace from dba_users; 2.查询用户的对应的数据文件,以及数据文件大小 select tablespace_name, file_id, fi

  • 解析如何查看Oracle数据库中某张表的字段个数

    Oracle中查询某个表的总字段数,要用SQL语句,或者在PL/SQL里面 复制代码 代码如下: select count(column_name) from user_tab_columns where table_name='T_B_AUDITOR' 能够查出来指定的那张表的字段数.下面是通过大致查看:select   tname,count(*)   from   col   group   by   tname; 复制代码 代码如下: 64 T_A_BOOKSTAGEINFO 465 T

  • 讲解Oracle数据库中结束死锁进程的一般方法

    1.查看死锁 1)用dba用户执行以下语句 select username,lockwait,status,machine,program from v$session where sid in (select session_id from v$locked_object) 如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台.字段说明: Username:死锁语句所用的数据库用户: Lockwait:死锁的状态,如果有内容表示被死锁. Status: 状态,active表示被死锁 Ma

  • 在Oracle数据库中添加外键约束的方法详解

    外键指定一个列(或一组列)的值必须符合另一个表的一些行的值.我们说这是维持关联表的参照完整性. 在图形化界面中,在 外键 选项卡,只需简单地点击外键栏位来编辑.使用外键的工具栏,能让你创建新的.编辑或删除选择的外键栏位. 添加外键:添加一个外键到表. 删除外键:删除已选择的外键. 使用 名 编辑框来输入新键的名. 使用 参考模式.参考表 和 参考限制 下拉列表来分别选择一个外部索引数据库.表及限制. 要包含栏位到键,只需简单地双击 栏位 栏位或点击  来打开编辑器进行编辑. 删除时 下拉列表定义

  • Oracle数据库服务器修改操作系统时间的注意事项详解

    Oracle 数据库服务器修改操作系统时间的注意事项: 对单机或者ha 1.对数据库本身而言,其实是没有影响的.因为scn不依赖于os时间 2.对app(应用程序)而言,若是app中使用了sysdate之类的,那确实是有影响的. 基于这个情况,我们一般推荐:改os时间 不往之前的时间去改,而是往今后的时间去改. 推荐:安装oracle10g时候注意事项&修改oracle数据库字符集编码 [安装oracle10g时候注意事项:1. 关闭网络连接2.--修改oracle数据库字符集编码:先用syst

  • oracle的归档模式 ORACLE数据库归档日志常用命令

    --连接恢复管理器 C:\Documents and Settings\mengzhaoliang>rman target/ --归档日志列表 RMAN> list archivelog all; --删除物理文件不存在的归档日志 RMAN> delete expired archivelog all; --删除7天前的归档日志 RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; oracle的归档模式 一.查看ora

  • Oracle数据库快照的使用

    正在看的ORACLE教程是:Oracle数据库快照的使用.oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果.正因为快照是一个主表的查询子集,使用快照可以加快数据的查询速度;在保持不同数据库中的两个表的同步中,利用快照刷新,数据的更新性能也会有很大的改善. 下面以我在开发襄樊市电信局170话费催缴系统中使用快照加快查询速度的实现过程为例来说明快照的使用方法: 170话费催缴系统是一个向用户电话播放催缴话费提示音的系统.用户的欠费金额存放在rs6000

  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?

    朋友问: 有个学校oracle数据库的编码是GBK,而且库里边已经有很多生产数据了,现在想改成UTF8的,如果执行了这步操作,会出现哪些问题? 我的回答: 因为utf8的库中文占3个byte,gbk占2个byte,所以会出现客户端乱码. 比较稳妥的方案是,再搭建一个oracle环境,设置成utf8编码,把旧的oracle数据迁移到新的utf8编码的oracle库中的环境. oracle群里面peter的回答: 官方的方法是新建一个utf8的库再导入. 直接改内部视图的办法是错的,从不这样用,也不

  • PLSQL连接本地oracle或远程oracle数据库实现随意切换功能

    目录 前言 step1 复制network文件 step2 修改配置文件 2.1 修改oracle数据库文件 2.2 修改oracle数据库文件 2.3 修改客户端文件 step3 配置OCI step4 环境变量配置 step5 重启电脑(有时候不需要重启) step6 登录plsql!!! 前言 先赞后看,此生必赚! 每次安装Oracle以后,都会出现使用plsql连接不上的问题!多次重启电脑.重装系统的磨人经历之后, 今天看到这篇文章算是你我之幸!希望能帮助广大技术人员减少一些时间,顺利进

随机推荐