oracle修改字符集

生产环境的数据表用了 中文字段名。

在生产环境oracle表正常,新建开发环境时,报字符串超长。

原因是

生产oracle字符集是:NLS_CHARACTERSETZHS16GBK

开发oracle字符集是:NLS_CHARACTERSET AL16UTF16


开发oracle需要修改字符集和生产一致。


开发下:

select * from V$nls_Parameters;


cmd,sqlplus登录

system as dba

密码


通过 "alter database character set ZHS16GBK;" 方式修改,但并不总是有效。该命令在Oracle8时被引入Oracle,这个操作在本质上并不转换任何数据库字符,只是简单的更新数据库中所有跟字符集相关的信息。
查询字符集信息: "SQL> select name,value$ from props$ where name like '%NLS%';",结果有二十行。
修改步骤:
注意:转换字符集,数据库应该在RESTRICTED模式下进行. (使用DBA登录数据库)
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> set linesize 120;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

常见问题:
问题1:
SQL> ALTER DATABASE CHARACTER SET ZHS16CGB231280;
ALTER DATABASE CHARACTER SET ZHS16CGB231280
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
原因:
字符集超集问题,所谓超集是指:当前字符集中的每一个字符在新字符集中都可以表示,并使用同样的代码点,比如很多字符集都是US7ASCII的严格超集。如果不是超集,将获得以上错误。
解决方式:
SQL> alter database character set internal_use ZHS16GBK;
SQL> select * from v$nls_parameters;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
备注:
ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。该方法某些方面有用处,比如测试环境;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责。

问题2:
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active
原因:
字符集超集问题。
解决方式:
SQL> alter database character set internal_use ZHS16GBK;
SQL> select * from v$nls_parameters;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

问题3:
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists
原因:
数据库存在CLOB类型字段,那么就不允许对字符集进行转换
解决方式:
这时候,我们可以去查看alert.log日志文件,看CLOB字段存在于哪些表上:
内容如:
ALTER DATABASE CHARACTER SET ZHS16GBK
SYS.METASTYLESHEET (STYLESHEET) - CLOB populated
ORA-12716 signalled during: ALTER DATABASE CHARACTER SET ZHS16GBK...
对于用户表,可以先将该表导出,然后把该表删掉,等字符转换完毕后在导入。


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

更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#获取当前程序运行路径的方法集合

2019独角兽企业重金招聘Python工程师标准>>> // 获取当前进程的完整路径,包含文件名(进程名) Console.WriteLine(GetType().Assembly.Location "\tGetType().Assembly.Location"); // 获取新的 Process 组件并将其与当前活动的进程关联的主模…

mac安装python3.7两个版本_MAC下同时安装Python2和Python3

第一步:在安装Python之前,你的电脑需要安装一下工具:1.xcode(App Store里可以直接下载)2.套件管理工具Homebrew第二步:安装Homebrew1.打开终端,输入:ruby -e "$(curl -fsSL https://raw.githubusercon…

Hive thrift服务--beeline使用

hive提供了thrift服务,只要客户端符合thrift标准就可以与它对接。 这样可以以在一台服务器上启动一个hive,其他用户通过thrift访问hive。 hive自带了一个thrift的客户端-------bin/beeline 启动方式: 1、hadoop的core-site.xml增加配置 &l…

vfp控制excel使用sort_使用Python根据索引合并Excel表

有两张不同大小的excel表表1:字典的选项值,2118行表2:字典名称,405行表1和表2有共同的列.现在需要根据共同的列,以表1为底,将表2的值对应添加到表1的每一行。下面是代码:1.加载相关的库import n…

Redis详解(三)

一、Redis集群介绍 Clustering:redis 3.0之后进入生产环境分布式数据库,通过分片机制来进行数据分布,clustering 内的每个节点,仅有数据库的一部分数据;去中心化的集群:redis集群中的每一个节点,都可以作为集群的接入节…

db2数据库日期减一天_DB2 数据库中的日期与时间如何正确操作?(2)

日期函数有时,您需要知道两个时间戳记之间的时差。为此,DB2 数据库提供了一个名为 TIMESTAMPDIFF() 的内置函数。但该函数返回的是近似值,因为它不考虑闰年,而且假设每个月只有 30 天。以下示例描述了如何得到两个日期的近似时差&…

win10计算机从桌面消失了,Windows10家庭版程序窗口在桌面上消失了解决方法

相信大家对于电脑非常不陌生吧,当你遇到Win10程序窗口桌面上消失了怎么办这个问题该怎么解决吗?不知道了吧,接下来小编就以程序窗口时所遇到的Win10程序窗口桌面上消失了怎么办问题来给大家讲讲,看看小编是如何帮大家解决Win10程序…

如何将hive查询结果导出成txt文件

原文地址:https://zhidao.baidu.com/question/241683835498891364.html ----------------------------------------------------------------------------- 最近在使用hive时,需要将hive查询的数据导出到本地文件系统,HQL语法如下&…

MSSQL-最佳实践-如何监控备份还原进度

title: MSSQL 最佳实践 如何监控备份还原进度 author: 风移 摘要 本期月报是SQL Server备份还原专题分享系列的第六期,打算分享给大家如何监控SQL Server备份还原进度。 场景引入 由于SQL Server备份还原操作是重I/O读写操作,尤其是当数据库或数据库备…

抢车位app下载_太方便了!有了这个APP,找车位再也不用“兜圈子”了

对于不少有车一族来说,决定出门是否开车的重要因素之一,那就是目的地是不是好停车,因为找车位可真是一件很头疼的事,不过未来,满街找停车位的尴尬情况将会越来越少,近日,镇江智慧停车平台正式上…

bmp文件头_图像算法原理与实践——图像文件存储

图像数据在计算机储器设备中的存储形式是图像文件,图像必须按照某个公开的、规范约终结定的数据存储顺序和结构进行保存,才能使不同的程序对图像文件顺利进行打开或存盘操作,实现数据共享。图像数据在文件中的存储顺序和结构称为图像文件格式…

一共81个,开源大数据处理工具汇总

查询引擎 一、Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询。Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。 Phoen…

html5怎么删除样式,css怎么删除一个样式

css删除一个样式的方法:首先创建一个HTML示例文件;然后给div添加css样式;最后通过“removeClass()”方法从被选元素删除一个或多个类即可。本教程操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。CSS添加样式、删除样…

python语言中内置的字符串排版方法_Python14之字符串(各种奇葩的内置方法)

一、字符串的分片操作其分片操作和列表和元组一样1 str1 keshengtao2 str1[2:6]3 shen4 str1[:]5 keshengtao6 str1[:4]7 keshView Code二、访问字符串中的字符注:字符串中的单个字符,同样也是字符串1 str1 keshengtao2 str1[3]3 hView Code三、字符串…

sqlserver 字符串转化数值函数_Excel常见函数用法(TEXT函数)

基本语句:=TEXT(数值,文本格式) 用法说明:TEXT函数可通过格式代码对数字应用格式,进而更改数字的显示方式。其中,参数①是我们想要改变格式的数值,它可以是文本,也可以是数字;而参数②就是我们想要参数①最终变成的格式,它的作用原理和自定义数字格式一致,基本用法共…

laravel 的 表单请求

在对文章、帖子等信息进行创建、更新的时候,需要进行表单验证的时候,一般我们使用Request来获取输入的值来进行验证,这样需要在每一个方法中进行书写验证规则。 laravel 提供了创建表单请求,我们可以使用 artisan 来创建一个表单请…

Flume概述

官网 http://flume.apache.org/ 介绍 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中。一般的采集需…

日常计算机操作知识试题,关于2017计算机一级考试试题操作题

关于2017计算机一级考试试题操作题在日常学习和工作中,我们很多时候都不得不用到试题,试题可以帮助参考者清楚地认识自己的知识掌握程度。那么一般好的试题都具备什么特点呢?下面是小编为大家整理的关于2017计算机一级考试试题操作题&#xf…

概率分布分位点_概率分布的分位数三.PPT

概率分布的分位数三5.2 常用统计分布 一、常见分布 t 分布具有下列性质: 性质5.6 设 , 则当 时有 性质5.7 设 , 是T的分布密度, 则 此性质说明,当 时,T分布的极限 分布是标准正态分布。 这说明F分布极限分布也是正态分…

mastercam加工报表生成_听说最厉害的工程师才敢这样玩五轴加工?

今天让我们一起来看看五轴有些什么接地气的玩法:侧刃加工(此图非动图)相较使用刀具底刃加工,利用刀具侧刃加工可以得到更加光滑的加工表面。适用于航空航天工业中复杂型腔工件的精加工。Mastercam提供专用功能可有效防止刀具和零件型腔底部出现过切&…