ORACLE对象名大小写敏感性相关的深入分析
注:
1、 本文是以ORACLE9.2为测试分析版本
2、 本文中提到的ORACLE对像名包括ORACLE中的表名、视图名、字段名、函数名等等。
以下是笔者对创建表及访问使用不同命名方式的一个实例,是笔者的机器上测试结果:
Connected to Oracle9i Enterprise Edition Release 9.2.0.7.0
Connected as *****
SQL> create table mytable1
2 (
3 C1 VARCHAR2(6)
4 );
Table created
SQL> select * from "MYTABLE1";
C1
------
SQL> select * from MYtable1;
C1
------
SQL> select * from "mytable1";
select * from "mytable1"
ORA-00942: 表或视图不存在
SQL> drop table mytable1;
Table dropped
SQL>
SQL>
SQL> create table "mytable1"
2 (
3 C1 VARCHAR2(6)
4 );
Table created
SQL> select * from "mytable1";
C1
------
SQL> select * from mytable1;
select * from mytable1
ORA-00942: 表或视图不存在
SQL> select * from MYTABLE1;
select * from MYTABLE1
ORA-00942: 表或视图不存在
下表为笔者的测试结果汇总:
√表示允许访问,×表示不允许访问。
实例:
读取
创建 mytable1 MYTABLE1 “mytable1” “MYTABLE1”
mytable1 √ √ × √
MYTABLE1 √ √ × √
“mytable1” × × √ ×
“MYTABLE1” √ √ × √
总结归纳:
读取
创建 小写字母 大写字母 加引号小写字母 加引号大写字母
小写字母 √ √ × √
大写字母 √ √ × √
加引号小写字母 × × √ ×
加引号大写字母 √ √ × √
以下为根据笔者对ORACLE数据字典及实际测试总结分析结论:
ORACLE在创建对像时如果没有加引号,对存入数据字典时都会将对像名小写字母转换成大写字母存储,如mytable将转换成MYTABLE;如果创建时加了引号,则以引号内的实际字符存储。
访问时如果没加引号则会将小写字母转换成大
相关文档:
windows上存在32bit的限制,如AIX、HP UNIX 等有明确的64BIT OS and ORACLE的版本,32bit oracle可以装在64bit os 上,64 bit oracle不能装在32 bit OS上
oracle是64bit or 32 bit,32bit 通常 SGA有 1.7G 的限制(某些OS的处理或者WINDOWS上有特定设定可以支持到2G以上甚至达到3.7G
如何查出前台正在发出的sql语句:
sele ......
SQL*PLus> desc emp;
名称 &nbs ......
update :单表的更新不用说了,两者一样,主要说说多表的更新
Oracle> Oracle的多表更新要求比较严格,所以有的时候不是很好写,我们可以试试Oracle的游标
&n ......
SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) valu ......
数学函数
在oracle 中distinct关键字可以显示相同记录只显示一条
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
......