oracle数据库字符集 Oracle数据库字符集不对
- 游戏测评
- 2024-11-10 09:50
- 1
如何设置oracle数据库的字符集
SQL> startup force rest>startup mount; (把database重开去可更改情况)rictOracle在数据转储时的字符集问题
生成数据库的国正确设置ORACLE客户端字符集的方法:家字符集生成后可以修改。如何修改Oracle数据库字符集为UTF8
一般生成数据库 database_character_set 我选utORACLE 例程已经启动。f8,生成数据库后不能修改。本文对修改Oracle数据库字符集为UTF8的语句作讲解:查看字符集select userenv('language') from dual; sysdba2.执行下面代码:SHUTDOWN IMMEDIATE;STARTUP MOUNT EXCLUSIVE;ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET _QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;ALTER DATABASE OPEN;(------------如果有问题请在此插入下面语句--------------)ALTER DATABASE NATIONAL CHARACTER SET UTF8;ALTER DATABASE CHARACTER SET UTF8;SHUTDOWN immediate;STARTUP;如果修改出现问题时请调用下面语句再执行一次就可以了ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
oracle数据库字符集 Oracle数据库字符集不对
oracle数据库字符集 Oracle数据库字符集不对
oracle数据库字符集 Oracle数据库字符集不对
两个Oracle数据库,字符集不一样,怎样在这之间传递数据而不产生乱码
基本上现在的字符集 MySQL 都支持,查看 MySQL 支持的字符集列表, 有两种方法:修改注册表中字符集-------通过开始----运行 , 输入regedit 打开注册表编辑器
路径:HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraDb10g_home1 找到3)第三列表示字符集描述;NLS_LANG 双击打开,将测试库的字符集设置成和生产库的字符集一样;
ORACLE数据库导入的时候出现"IMP-00038: 无法转换为环境字符集句柄"怎么办?
ORACLE数据库字符集修改完成!数据泵不一致导致的,比如说你用expbd导出来的 用imp导入的时候就会出现这个错误,
exp导出来的用imp导入;
expbd导出来的用impbd导入。
解决办法:使用相同SQL> select value$ from props$ where name='NLS_NCHAR_CHARACTERSET';的数据泵导入导出。
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前的客户/(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
Oracle数据库版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。
Oracle数据库导出导入字符集问题
>alter database character set internal_use utf8;导出的dmp里面本身是否已经乱码?这是关键。
Total System Global Area 612368384 bytes如果可以重新导出,建议重新导出dmp。如果不能重新导出,建议将原来的dmp导入到一个字符集一致的临时库中,如果不乱码,再以新的字符集导出。
oracle到mysql中文变成问号,改了字符集还是没用
这种问题可以尝试将数据库编码改为utf-8。
如何更改Oracle字符集 国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字。UTF8字符集是多字节存储,1个汉字(简体、繁体)有时采用3个字符长度存储。 Oracle支持字符集的...取出的数据是‘’问号‘’,NLS_LANG = language_territory.charset说明就是没存进去,不是类似二进制值的形式,不能转换为中文。
可以尝试将数据库编码改为utf-8,修改表和字段的字符集为utf-8表的字符集不能后期可视化方式修改。
如何修改ORACLE字符集使NLS
>startup; (重开正常oracle)[phpselect from v$nls_parameters;]
1 select value$ from props$ where name='NLS_NCHAR_CHARACTERSET'
SQL> /
AL16UTF16
Fixed Size 1452 bytes
Variable Size 197135212 bytes
Database Buffers 411041792 bytes
Redo Buffers 2940928 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter database national character set utf8;
数据库已更改。
----------------------------------------------------------------------
UTF8
.............
[/php]
怎样查看数据库的字符集
数据库字符集在创建后原则上不能更改。不过有2种方法可行。1. SQL 语句
查询结果:
1)列代表2. 查看元数据字典表字符集名字;
2)第二列表示字符集排序规则;
4)第四列表示字符集编码的字节数。
oracle安装后怎么修改字符集
和版本没有关系,导出库时用的oracle版本和导入时用的不同。小版本不同也有影响。1. 如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换。
2. 通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8是US7ASCII的超集,修改数据库字符集可使用ALTER 作为一个Oracle数据库的用户 对于Export和Import两个命令不会感到陌生 因为这二者正是我们经常用于数据备份和恢复的工具 但在使用这两个命令过程中所发生的Oracle字符集问题 常给一些Oracle使用者带来不必要的麻烦和不必要的数据损失 本文将就Export和Import过程中Oracle字符集的转换规律及使用这两个命令的注意事项做一总结 字符集转换的原因 Export Import过程如上图所示 从这个示意图中可以看到有四处关系到字符集 而这四处字符集的不一致恰恰是导致Oracle进行字符集转换的原因 源数据库字符集 Export过程中用户会话字符集 Import过程中用户会话字符集 目标数据库字符集 在Export和Import过程中 如果存在影响字符集转换的四因素不一致 则可能发生Oracle字符集转换 即 在Export过程中 如果源数据库字符集与Export用户会话字符集不一致 会发生字符集转换 并在导出的二进制格式Dmp文件的头部几个字节中存储Export用户会话字符集的ID号 在这个转换过程中可能发生数据的丢失 例 : 如果源数据库使用ZHS GBK 而Export用户会话字符集使用US ASCII 由于ZHS GBK是 位字符集 而US ASCII是 位字符集 这个转换过程中 中文字符在US ASCII中不能够找到对等的字符 所以所有中文字符都会丢失而变成 ?? 形式 即这种转换后生成的Dmp文件已经发生了数据丢失 例 : 如果源数据库使用ZHS GBK 而Export用户会话字符集使用ZHS CGB 但由于ZHS GBK字符集是ZHS CGB 字符集的超集 这个过程中绝大部分字符都能够正确转换 只有一些超出ZHS CGB 字符集的字符变为 ?? 形式 如果源数据库使用ZHS CGB 字符集 而Export用户会话使用ZHS GBK字符集 则转换过程能够完全转换成功 在Import向目标数据库转换过程中 其字符集发生转换的情况正好与Export过程相反 这里不再详述 在Export导出的Dmp文件中 含有Export用户会话字符集 在Import过程中 首先发生的是Dmp文件字符集(即Export用户会话字符集)向Import用户会话字符集的转换 如果这个转换过程不能正确完成 Import向目标数据库的导入过程也就不能完成 进行字符集的正确转换通常情况下 我们在使用Oracle的Export和Import过程中 并不希望发生字符的转换 但有时这种转换却是必要的 如我们在安装Oracle数据库时 选择ZHS CGB 字符集 由于这种字符集是一种中文小字符集 对于一些汉字不能够正确表示 这需要通过使用ZHS GBK字符集得到解决 此时就要进行字符集的转换 为了确保Export Import过程中 Oracle字符集不发生转换或正确转换 建议在进行这个过程前 检查一下源数据库字符集与Export用户会话字符集是否一致 源数据库字符集与目标数据库字符集是否一致 目标数据库字符与Import用户会话字符集是否一致 如果能够保证这四个字符集是一致的 则在Export Import过程中 Oracle字符集就不用发生转换 可用以下办法检查数据库字符集: 通过InitXXXX ora文件进行查看 借助SQL语句查看 SELECT NAME VALUE$ FROM SYS PROPS$ WHERE NAME= NLS_CHARACTERSET 对于Export Import用户会话字符集 在Windows系统中也可以通过注册表中的NLS_LANG进行查看或修改 对于Unix系统则可通过设置用户的环境变量NLS_LANG来查看或修改 特别要注意的是 Oracle数据库字符集通常是在创建时确定 一旦存储用户数据后就不要再修改了 因为其数据都是使用该字符集进行存储的 改换其他字符集之后 原有数据就不能够正确表示了 但如果确实想进行字符集改变 则可通过以下几步来实现 备份数据库后删除原数据(可物理备份 如使用Export 请注意确保字符集不发生转换或数据无损失) 使用Internal用户更新sys props$表中的字符集:Update sys props$ set name= Dest CharSet Where name= NLS_CHARACTERSET ; MIT; 重启数据库 恢复数据 下面字符集之间的转换是可行的 字符集子集向字符集父集转换是可行的 如ZHS CGB 向ZHS GBK转换 而字符集父类向字符集子集进行转换时 会损失部分数据 只包含英文字符数据的双字节字符集也可向单字节字符集转换 如ZHS GBK(English Only)可以向US ASCII正确转换 编码范围相同的单字节字符集之间通常可以进行相互转换 请注意 这里所说的没有数据损失 是指一种字符集A转换成另一种字符集B之后 可以再从字符集B正确转换成字符集A或字符集B能够正确表示字符集A中转换过来的数据 字符集对程序的影响根据一个字符需要多少位字节来表示 可以把字符集分为单字节字符集和多字节字符集 其中 单字节字符集又分为 位字符集和 位字符集 单字节 位编码字符集有US ASCⅡ 单字节 位编码字符集有符合ISO 标准规定的WE ISO P 等 多字节编码又分为固定长度(长度大于或等于 )编码模式和不固定长度编码模式 多字节编码字符集中的ZHS GBK ZHS CGB JA SJIS等是采用两个字节表示一个字符的字符集 又叫双字节字符集 一个英文字母是一个字符 一个中文汉字是几个字符呢?我们知道 一个中文汉字是双字节字符 但它有几个字符与其数据库字符集有关 如果数据库字符集使用单字节US ASCII 则一个中文汉字是二个字符 如果数据库字符集使用双字节字符集ZHS GBK 则一个中文汉字是一个字符 有关这一点可以使用Oracle的函数Substr得到证明 使用US ASCⅡ字符集时: Select substr( 东北大学 ) from dual; 语句执行结果返回 东 使用ZHS GBK字符集时: Select substr( 东北大学 ) from dual; 语句执行结果返回 东北 选择合适的数据库字符集选择数据库字符集时应考虑以下事项 .数据库需要支持什么语言 在为数据库选择字符集时 常会发现几种字符集都适合你当前语言需求 如简体中文就有ZHS GBK和ZHSCGB 等字符集可供选择 应选择哪种?在选择字符集时 应考虑到数据库将来的系统需求 如果知道将来数据库要扩展支持不同的语言 选择一个范围较广的字符是一个更好的主意 .系统资源与应用之间的互作用性选择的数据库字符集应保证作系统与应用之间的无缝连接 如果选择的字符集不是作系统有效的字符集 则系统就需要在这两者之间做字符转换 在这种字符转换过程中 就有可能发生一些字符丢失现象 从一种字符集A向另一种字符集B转换过程中 A中的字符必须在B中可以找到等价的字符 否则就会以 ? 来代替 从这个意义上说 如果两种字符集编码范围是相同的 则可以相互转换 字符集转换过程中会影响系统性能 因此 应保证客户端和端有相同的字符集以避免字符集转换 也可以提高一定的系统性能 .系统的性能要求不同的数据库字符集对于数据库的性能是有一定影响的 为了得到的数据库性能 选择的数据库字符集应避免字符转换 并且要选择对于期望的语言有效的编码效率 通常 单字节字符集比多字节字符集有更优的性能表现 在空间需求方面也更小些 .其他一些限制在为数据库选择一个合适的字符集时 应参考Oracle对应版本的相关文档 检查Oracle对于一些字符集的限制 如Oracle 版本中 以下字符集是不能使用的: JA EUCFIXED ZHS GBKFIXED JA DBCSFIXED KO DBCSFIXED ZHS DBCSFIXED JA SJISFIXED ZHT TRISFIXED 综上所述 正确理解Oracle字符集的转换过程 可以使我们避免不必要的麻烦和数据损失 合理利用Oracle字符集的转换过程 也可以帮助我们正确地从一种字符集转换到另一种字符集 以满足我们各种不同的应用需求 lishixinzhi/Article/program/Oracle/201311/17956DATABASE CHARACTER SET UTF8。
版权声明:本文内容由互联网用户自发贡献。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。
上一篇
母绵羊有角吗 母绵羊有角吗美羊羊
下一篇