Oracle OCP笔记(32)全球化(字符集,语言,地区等)

Oracle OCP笔记(32)全球化(字符集,语言,地区等)

1.全球化功能 (1).字符集 数据库中存储的数据必须被编码为字符集,字符集是用于将字符表示为位序列的已定义编码模式。 有些软件产品会使用主机操作系统所提供的字符集。如Microsoft Word使用Windows操作系统所提供的字符集。 有些软件产品则提供了自己的字符集,不依赖于主机操作系统所提供的字符集,如Oracle. ASCII与 Unicode标准用于字符编码的国际标准,包含任何计算机系统需要的所有字符。 单字节(7位) US7ASCII YUG7ASCII 单字节(8位) WE8ISO8859P15 WE8DEC I8EBCDIC1144 固定长度多字节 ZHS16GBK: 简体中文,两字节 ZHT16BIG5: 繁体中文,两字节 AL16UTF16: 一种Unicode字符集,两字节 变长单字节 UTF8: 一种Unicode字符集,1~4个字节,Unix系统的标准字符集. 变长多字节 JA16SJIS ZHT16CCDC: 传统的中文字符集,每个字节的最高位用于指示该字节是单字节字符还是多字节字符的一部分. AL32UTF8: 可变长的Unicode字符集. select * from nls_database_parameters where parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); -- 数据库的字符集. select * from props$ where name in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); -- 数据库的字符集. select * from v$nls_valid_values where parameter='CHARACTERSET'; -- 支持的所有字符集 (2).语言支持 关于语言的初始化参数 nls_language -- 语言,显示错误消息的语言,默认值AMERICAN nls_date_language -- 用于日期与月份名的语言,默认值AMERICAN nls_sort -- 语言排序顺序,默认值BINARY select * from nls_database_parameters where parameter in ('NLS_LANGUAGE','NLS_DATE_LANGUAGE','NLS_SORT'); -- 数据库中设置的语言 select * from nls_instance_parameters where parameter in ('NLS_LANGUAGE','NLS_SORT'); -- 实例中设置的语言 select * from nls_session_parameters where parameter in ('NLS_LANGUAGE','NLS_SORT'); -- 会话级设置的语言 select * from props$ where name in ('NLS_LANGUAGE','NLS_SORT'); -- 数据库中设置的语言 select * from v$parameter where name in ('nls_language','nls_date_language','nls_sort'); -- 实例中设置的语言 select * from v$nls_parameters where parameter in ('NLS_LANGUAGE','NLS_SORT'); -- 会话级设置的语言 select * from v$nls_valid_values where parameter='LANGUAGE'; -- 支持的所有语言 select * from v$nls_valid_values where parameter='SORT'; -- 支持的所有排序顺序 alter session set nls_language='AMERICAN'; -- 设置会话级的语言 (3).地区支持 关于地区及相关的初始化参数 nls_territory -- 地区,地理位置,默认值AMERICA nls_currency -- 当地货币符号,默认值$ nls_dual_currency -- 次要货币符号,默认值$ nls_iso_currency -- 指示ISO地区货币符号,默认值AMERICA nls_date_format -- DATE类型列格式,默认值DD-MM-RR nls_numeric_characters -- 小数点分隔符与组分隔符,默认值.,nls_timestamp_format -- TIMESTAMP类型列格式,默认值DD-MM-RRHH.MI.SSXFF AM nls_timestamp_tz_format -- TIMESTAMP WITH LOCAL TIMEZONE类型列格式,默认值DD-MM-RRHH.MI.SSXFF AM TZR select * from nls_database_parameters where parameter = 'NLS_TERRITORY'; -- 数据库中设置的地区 select * from nls_instance_parameters where parameter = 'NLS_TERRITORY'; -- 实例中设置的地区 select * from nls_session_parameters where parameter = 'NLS_TERRITORY'; -- 会话级设置的地区 select * from props$ where name = 'NLS_TERRITORY'; -- 数据库中设置的地区 select * from v$parameter where name='nls_territory'; -- 实例中设置的地区 select * from v$nls_parameters where parameter = 'NLS_TERRITORY'; -- 会话级设置的地区 select * from v$nls_valid_values where parameter='TERRITORY'; -- 支持的所有地区 地区选择还可以默认设置日和周的编号、收支符号、日期格式、小数点分隔符和组分隔符以及货币符号。 alter session set nls_territory='AMERICA'; select systimestamp from dual; -- 时间戳格式 alter session set nls_date_format='dd-mm-yyyy'; select sysdate from dual; -- 日期格式 (4).其他NLS设置 nls_calendar -- 允许使用另一种历法系统(Gregorian) nls_comp -- 使用字母的NLS值进行ANSI比较(BINARY) nls_length_semantics -- 允许将多字节字符作为完整的字符(而非字节)进行操纵(BYTE) nls_nchar_conv_excp -- 限制在VARCHAR2与NVARCHAR之间进行转换时生成的错误信息(FALSE) 2.使用全球化支持功能 可以在以下5个级别任意级别上或所有级别上指定全球化(优先级别由低到高): 数据库 实例 客户端环境 会话 语句 (1).选择字符集: 在数据库创建阶段,必须正确完成的两个设置: db_block_size参数和数据库字符集。 db_block_size参数绝对不能改变,数据库字符集理论上可以改变,但事实上不可行。 数据库VARCHAR2、CLOB、CHAR和LONG列使用数据库字符集存储。NVARCHAR2、NCLOB和NCHAR列使用National Character Set存储。 National Character Set只能为Unicode字符集: AL16UTF16和UTF8. (2).改变数据库字符集 csscan: 数据库字符集扫描程序(Database Character Set Scanner) lcsscan: 语言与字符集文件扫描程序(Language and Character Set File Scanner) csscan system/password full=y tochar=utf8 -- 查看转换致utf8是否会导致任何问题,必须先运行csminst.sql脚本. alter database character set ZHS16GBK; alter database national character set AL16UTF16; 目标字符集必须是原始字符集的一个超集. (3).数据库级的全球化 select * from nls_database_parameters; -- 数据库级的全球化设置 select * from props$; -- 数据库级的全球化设置 alter system set nls_language='AMERICAN' scope=spfile; (4).实例级的全球化 select * from nls_instance_parameters; -- 实例级的全球化设置 select * from v$parameter where name like 'nls%'; -- 实例级的全球化设置 alter system set nls_language='AMERICAN' scope=spfile; -- 设置实例级的语言 实例参数设置会重写数据库设置。在RAC环境中,不同的实例可以具有不同的设置。 (5).客户端环境设置 某个Oracle用户进程启动时,这个进程会通过查看其运行的环境获得全球化的默认设置。这种机制意味着用户可以使用不同的全球化设置来配置与各自要求相适应的终端。这个功能的内部实现为:用户进程读取环境变量,随后生成一系列实现该机制的alter session命令。 服务器端与客户端的全球化设置之间的转换由Oracle Net完成。 环境变量: NLS_LANG=语言_地区.字符集(<Language>_<Territory>.<Characterset>) NLS_DATE_FORMAT 导出导入操作(Export/Import)可能需要设置NLS_LANG环境变量. Linux平台的Oracle: $ echo $NLS_LANG $ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK -- 客户端环境变量 $ export NLS_DATE_FORMAT='MM/DD/YYYY'; 修改配置文件永久生效 $ vi .bash_profile NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK; export NLS_LANG; NLS_DATE_FORMAT='MM/DD/YYYY'; export NLS_DATE_FORMAT; $ source .bash_profile Windows平台的Oracle: C:\> echo %NLS_LANG% C:\> set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK C:\> set NLS_DATE_FORMAT='MM/DD/YYYY' 修改注册表永久生效 HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/NLS_LANG 图形界面客户端软件显示的语言,依赖于操作系统的环境变量LANG $ export LANG=zh_CN.UTF-8 $ export LANG=zh_CN.GBK $ export LANG=en_US.UTF-8 或者修改文件/etc/sysconfig/i18n的LANG环境变量 (6).会话级全球化设置 select * from nls_session_parameters; -- 会话级别的全球化设置 select * from v$nls_parameters; -- 会话级别的全球化设置 -- 修改会话级别的全球化设置. alter session set nls_language='AMERICAN'; alter session set nls_date_format='mm/dd/yyyy'; execute dbms_session.set_nls('nls_date_format','''mm/dd/yyyy'''); (7).语句级的全球化设置 可以在SQL语句内使用NLS参数,此SQL函数是能够在数据类型之间进行转换的类型强制转换函数 TO_DATE: NLS_DATE_LANGUAGE NLS_CALENDAR TO_NUMBER: NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_DUAL_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR TO_CHAR,TO_NCHAR: NSL_DATE_LANGUAGE NLS_NUMERIC_CHARACTERS NLS_CURRENCY NLS_DUAL_CURRENCY NLS_ISO_CURRENCY NLS_CALENDAR select to_char(sysdate,'month','NLS_DATE_LANGUAGE=AMERICAN') from dual; (8).语言排序选择 alter session set nls_sort=generic_baseletter; alter session set nls_comp=ansi; (9).自定义全球化环境 Locale Builder: %ORACLE_HOME/nls/lbuilder/lbuilder (10).使用时区 带时区的时间戳类型: TIMESTAMP WITH TIME ZONE -- 存储时不规范化为数据库时区,但有指示符指示引用的时区 TIMESTAMP WITH LOCAL TIME ZONE -- 存储时规范化为数据库时区,检索时转换为客户端的时区 普通的DATE和TIMESTAMP数据类型在存储时始终会规范化为数据库时区,并在选中时原样显示 select dbtimezone from dual; -- 数据库时区 select sessiontimezone from dual; -- 客户端会话时区 select * from database_properties where property_name = 'DBTIMEZONE'; -- 数据库时区 select to_char(systimestamp,'yyyy/mm/dd hh24:mi:ss tzr') from dual; -- 带时区的时间戳 select * from v$timezone_names; -- 支持的所有时区 alter database set time_zone='+08:00'; alter session set time_zone='Asia/Shanghai'; alter session set nls_timestamp_tz_format='yyyy/mm/dd hh24:mi:ss tzr'; ORA_STDZ环境变量设置客户端时区.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符串转Oracle的insert into的小程序。
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远端的监听服务来找问题,在远端查看监听服务状态(具体看下面的解决方案会详细呈现),服务是否开启,另外查看监听端点概要是否存在host未指向到计算名的,如无直接进入监听配置文件listener.ora内添加指向即可。2、查看监听服务状态 lsnrctl status,右边为远端端点状态,未添加host指向到计算名;1、本地及远端安装好Oracle并配置好连接,Oracle服务和监听已启动;1、远程Oracle数据库:Oracle11g R2。或者进入下述服务手动重启。,再进行远程连接即可。_ora-12541:tns:无监听程序
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语句转oracle
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library_cx_oracle.databaseerror: dpi-1047: cannot locate a 64-bit oracle client libr
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Oracle数据库的核心要素,包括体系结构、存储结构以及各类参数。通过解析Oracle数据库的体系结构,读者可以深入了解其内部组成和工作原理。存储结构部分介绍了数据在Oracle中的存储方式,从表空间到数据文件的层层逻辑。最后,我们深入探讨了Oracle数据库中各类参数的作用和配置方法,帮助读者更好地理解和优化数据库性能。本文旨在帮助读者全面理解Oracle数据库的运作机制,为其在实践中的应用提供基础和指导。
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时)由于平时默认每天只收集4小时,时间有点短了,改成每天可收集8小时。oracle 18c中默认是打开的。查看当前自动收集统计信息的时间。_oracle自动收集统计信息
文章浏览阅读929次,点赞18次,收藏20次。只有assm(Automatic Shared Memory Management)模式可以使用大页,需要关闭amm(Memory Manager Process)HugePages_Free: 306 (空闲306页,已使用306-306=0页)防止oracle使用的内存交换,所以设置的大小与oracle配置的sga、pga相关。HugePages_Rsvd: 0 (操作系统承诺给oracle预留的页数)HugePages_Total: 306 (总共306页)_oracle11g 大页
文章浏览阅读801次。例如:10046:0,1,4,8,12。默认redo日志有三个,大小为50M,循环覆盖使用。redo log再覆盖之前,会被归档,形成归档日志。答:不同事件,不同级别。trace的不同级别?_oracle 日志
文章浏览阅读4.2k次,点赞84次,收藏77次。主要讲解MySQL中SQL的DDL语句,其中包括对数据库和表的一系列操作。_sql ddl 新增字段 mysql
文章浏览阅读1.1k次。ON DEMAND:仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;ON COMMIT:一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。Method =>'C',物化视图有三种刷新方式:COMPLETE、FAST和FORCE。物化视图会占用空间,一半可用于大量数据查询时,减缓主表的查询压力使用。例如创建一个物化视图,让对接单位查询。_oracle物化视图定时刷新
文章浏览阅读713次,点赞21次,收藏18次。1.背景介绍在当今的大数据时代,数据量越来越大,传统的关系型数据库已经无法满足业务需求。因此,NoSQL数据库技术迅速崛起,成为企业和开发者的首选。Oracle NoSQL Database是Oracle公司推出的一款分布式NoSQL数据库产品,具有高性能、高可用性和易于扩展等特点。在本文中,我们将深入了解Oracle NoSQL Database的集成与开发者工具,帮助您更好地掌握这款产品的...
文章浏览阅读2.5k次,点赞2次,收藏4次。今天遇见一个问题需要将字段中包含中文字符串的筛选出来。_oracle查询包含中文字符
文章浏览阅读802次。arcmap 在oracle删除表重新创建提示表名存在解决放啊
文章浏览阅读4.3k次,点赞2次,收藏4次。Oracle连接数据库提示 ORA-12638:身份证明检索失败_ora-12638
文章浏览阅读3.4k次,点赞6次,收藏25次。etc/profile是一个全局配置文件,所有用户登录都会使用该文件构建用户环境。与windows配置环境变量是一个道理。选择Linux系统,找到适合自己系统的安装包,我的是CentOS 8 x64。接下来需要登陆Oracle账户才能下载,无账户的可以自己注册一个。Linux中export 命令用于设置或显示环境变量。模式,利用上下键到文档最后,添加以下代码。出现如图所示版本号字样,则说明安装成功。点击下载,勾选1,点击2。记住完整路径用于后面配置。找到Java并点击进去。往下翻,找到Java8。_linux安装jdk1.8
文章浏览阅读2.4w次,点赞26次,收藏109次。JDK 是的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,其中JDK包含了 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。最主流的 JDK 是Oracle公司发布的 JDK,除了 Oracle JDK(商业化,更稳定)之外,还有很多公司和组织开发了属于自己的 JDK,比较有名的有IBM JDK(更适合 IBM) 和OpenJDK。_jdk安装教程
文章浏览阅读7.5w次。出现 “java.sql.SQLNonTransientConnectionException:Could not create connection to database server” 的错误通常是由于无法连接到数据库服务器引起的。_java.sql.sqlnontransientconnectionexception: could not create connection to
文章浏览阅读849次,点赞7次,收藏10次。在ClickHouse中创建用户、数据库并进行权限分配是一个重要的管理任务,它涉及到安全性和访问控制。下面是一个基本的指南来帮助你完成这些操作:1. 创建数据库首先,需要创建一个数据库。使用以下命令:CREATE DATABASE IF NOT EXISTS your_database_name;将 your_database_name 替换为你想要的数据库名。2. 创建用户接下来,创建一个新用户。使用以下命令:CREATE USER your_username IDENTIFIED WIT_在clickhouse中如何创建用户 赋权
文章浏览阅读1.2k次,点赞53次,收藏39次。本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
文章浏览阅读820次,点赞17次,收藏16次。KingbaseES、xml、dbms_xmlgen、SETSKIPROWS、人大金仓、KingbaseES兼容Oracle包dbms_xmlgen的功能是通过SQL查询将关系表中数据转化为XML文档。转化方式一共有两种:(1)通过查询字符串直接转化。(2)通过上下文句柄转化。对于通过查询字符串直接转化的方式,无法跳过若干行进行查询,只能直接将表格中的所有数据转化为XML文档。