Oracle使用需要注意的内容

考虑到今后计划学习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 );


 

待续

努力不会背叛

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


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值