oracle笔记:查询oracle字符集
程序员文章站
2022-03-30 13:08:47
1,查询oracle字符集:select * from nls_database_parameters where parameter='NLS_CHARACTERSET&...
1,查询oracle字符集:select * from nls_database_parameters where parameter='NLS_CHARACTERSET' 2,查找某个汉字的编码:select dump('一',1016) from dual; ---1016指的是16进制 UTF-8编码:e4,b8,80 3,查找转码后的编码: select dump(convert('一' ,'ZHS16GBK'),1016) from dual; ---GBK编码:d2,bb 4,数据库中出现乱码的原因是:客户端编码-->客户端的环境变量NLS_LANG的编码设置------>数据库编码, 注意数据库编码是保持不变的 例如:1,客户端是GBK,环境变量是GBK,数据库是UTF-8, 客户端插入的数据会根据环境变量与数据库编码不一致,会将数据转码为UTF-8再保存数据库中。 2,客户端是GBK,环境变量是UTF-8,数据库是UTF-8, 客户端插入的数据,由于环境变量与数据库编码一致,客户端插入的数据不会转码直接保存数据库中,保存的是GBK编码数据,会出现乱码。 3,客户端是UTF-8,环境变量是UTF-8数据库是UTF-8, 客户端插入的数据, 由于环境变量与数据库编码一致,会将数据直接保存数据库中。 4,客户端是UTF-8,环境变量是GBK,数据库是UTF-8, 客户端插入的数据, 由于环境变量与数据库编码不一致,会将数据转码为UTF-8再保存数据库中。客户端与环境变量之间是不会转化的,环境变量与数据库字符集不一致的时候会自动转化。
设置客户端环境变量: export NLS_LANG=.AL32UTF8 或者 export NLS_LANG=.ZHS16GBK 查看文件的字符集:lcsscan format=html file=sina.html
6,查看执行计划: 1)先执行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY) 2)通过sqlplus
设置客户端环境变量: export NLS_LANG=.AL32UTF8 或者 export NLS_LANG=.ZHS16GBK 查看文件的字符集:lcsscan format=html file=sina.html
6,查看执行计划: 1)先执行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY) 2)通过sqlplus
Sql> set autotrace on
Sql> select * from dual;
7,事务隔离
需要防止的现象和事务隔离级别
ANSI/ISO SQL 标准(SQL92)定义了四种事务隔离级别(transaction isolation level),这四种隔离级别所能提供的事务处理能力各不相同。这些事务隔离级别是针对三种现象定义的,在并发事务执行时,需要阻止这三种现象 中的一种或多种发生。
三种需要阻止的现象(preventable phenomena)是:
1、脏读取(dirty read):一个事务读取了被其他事务写入但还未提交的数据。
2、不可重复读取(nonrepeatable read):一个事务再次读取其之前曾经读取过的数据时,发现数据已被其他已提交的事务修改或删除。
3、不存在读取(phantom read):事务按照之前的条件重新查询时,返回的结果集中包含其他已提交事务插入的满足条件的新数据。
SQL92 标准中定义了四个隔离级别,在各隔离级别中,允许发生上述三种需要阻止的现象中的一种或多种。详情见下表
现象\隔离级别 | 脏读取 | 不可重复读取 | 不存在读取 |
未提交读取(read uncommitted) | 允许 | 允许 | 允许 |
已提交读取(read committed) | 不允许 | 允许 | 允许 |
可重复读取(repeatable read) | 不允许 | 不允许 | 允许 |
串行化(rerializable) | 不允许 | 不允许 | 不允许 |
Oracle 支持三种事务隔离级别:已提交读取,串行化,以及 SQL92 中没有包含的只读模式(read-only mode)。已提交读取是 Oracle 默认使用的事务隔离级别。
上一篇: Vue全局组件的注册与使用
推荐阅读
-
oracle逐步学习总结之oracle分页查询(基础三)
-
mysql仿oracle的decode效果查询
-
解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
-
oracle中利用关键字rownum查询前20名员工信息及rownum用法
-
mysql仿oracle的decode效果查询
-
oracle学习笔记(二)
-
oracle中利用关键字rownum查询前20名员工信息及rownum用法
-
Navicat Premium 10.0.5中文版 oracle连接字符集报错解决办法
-
oracle,mysql,SqlServer三种数据库的分页查询的实例
-
在oracle 数据库查询的select 查询字段中关联其他表的方法