Oracle使用需要注意的內容

2021-07-31 14:39:11 字數 2581 閱讀 9063

考慮到今後計畫學習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',' ');

--查詢

--返回 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 );

待續努力不會背叛

typeof需要注意的內容

現在需要概括一下注意點,如下 1 值和型別 js中只有值才有型別,變數沒有型別。js不做 型別強制 也就是說,語言引擎不要求變數總是持有與其初始值同型別的值。乙個變數可以現在被賦值為字串型別值,隨後又被賦值為數字型別值。執行typeof操作,得到的結果不是該變數的型別,而是該變數持有的值的型別,因為...

使用SqlSession 需要注意的

sqlsessionfactorybuilder 是用於建立sqlseesionfactory的,將sqlsessionfactorybuilder當成乙個工具類來使用 sqlseesionfactory 會話工廠,是乙個單例的,用於建立sqlsession,sqlsessionfactory一旦建...

使用Calendar需要注意clear

date是前台傳的值,格式為2014 01 01的形式 如下的 是去date日期當月的最大天數日期 int month integer.parseint date.substring 5,7 取天數 int year integer.parseint date.substring 0,4 取年份 d...