Oracle使用需要注意的内容

xiaoxiao2021-02-27  221

考虑到今后计划学习Oracle,觉得需要记录一下Oracle使用应该注意的地方:

1、修改会话的时间显示格式:

alter session set nls_date_format='YYYY-MM-DD hh24:mi:ss';

2、设置为允许输出:

set serveroutput on;

3、Oracle匿名块不允许直接输出select结果

这样可以;

begin dbms_output.put_line('想要显示的结果'); end;

这样报错:

begin select * from employees; end; ORA-06550: 第 2 行, 第 1 列: PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

4、rownum是对查询结果创造的伪列,而非属于表。

下面语句是查不出数据的。

select salary from employees where rownum>5;

可以通过此子查询实现:

select * from (select rownum num, salary from employees ) T where T.num>5;

5、select 语句投影,不能将*和其他列一起(SQL server无此限制)

select salary ,* from employees;

6、between and用于字符串需要注意

select * from CHLTBL where col2 between 'A' and 'C';

表示的含义是所以以A,B开头的字符串和C,C%是不包含的。

7、long类型的使用

一个表中最多只能存在一个long类型的列,同时long类型的列不能用于group by 子句。

8、集合条件:表达式in ('A','B','C')与表达式='A' or 表达式='B' or 表达式=‘C’,是等价的。这意味着二者之间不会有性能上的不同。

9、表达式 not in 集合这样的条件不能慎用,因为null值会被剔除掉。

10、字符串字段的比较

insert into CHL_UPDATE1(fid,fname,Fname_New) values(2,'cc',''); insert into CHL_UPDATE1(fid,fname,Fname_New) values(2,'dd',null); insert into CHL_UPDATE1(fid,fname,Fname_New) values(2,'ee',' '); insert into CHL_UPDATE1(fid,fname,Fname_New) values(2,'ff',' '); --查询 select * from CHL_UPDATE1 where fid=2;

--返回 cc dd select * from CHL_UPDATE1 where Fname_New is null; --返回 无 select * from CHL_UPDATE1 where Fname_New=''; --返回 ee select * from CHL_UPDATE1 where Fname_New=' '; --返回 ff select * from CHL_UPDATE1 where Fname_New=' ';

查询所有为null的或者为空格的记录

select * from  CHL_UPDATE1 where replace(Fname_New,' ','')  is null 

注意:下面语句是查不到数据的

select * from  CHL_UPDATE1 where Fname_New='';

11、oracle创建表是 是否允许为空与缺省值的先后顺序

--下面两个语句在sql server下都可以正常执行 --第一句在oracle下执行报错 create table test001(fid int,fdate date,fname  char(1)    DEFAULT '1' ,flongname nvarchar(2000)  null default '000' ); --第二句在oracle下执行不会报错 create table test001(fid int,fdate date,fname  char(1)    DEFAULT '1' ,flongname nvarchar(2000)   default '000' null );

 

待续

努力不会背叛

博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正  

 

转载请注明原文地址: https://www.6miu.com/read-10080.html

最新回复(0)