IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁數(shù)據(jù)庫Oracle → Oracle中時(shí)間、數(shù)字、字符格式詳解

Oracle中時(shí)間、數(shù)字、字符格式詳解

時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  本文面向想學(xué)習(xí)Oracle知識(shí)的各位數(shù)據(jù)庫管理員,希望通過本文,讓大家對(duì)于Oracle中時(shí)間、數(shù)字、字符格式有更深刻的理解。51CTO數(shù)據(jù)庫也向您推薦《Oracle數(shù)據(jù)庫開發(fā)應(yīng)用指南 》來幫助您更好的理解本文。

  字符格式

  Oracle中字符串的比較有兩類

  1.填補(bǔ)空格的語義比較

  2.非填補(bǔ)空格的語義比較

  填補(bǔ)空格的語義比較:

  如果兩個(gè)字符串有不同的長(zhǎng)度,Oracle首先會(huì)在短的字符串那邊末尾添加空格,直到兩個(gè)字符串長(zhǎng)度相等。

  Oracle然后按字符順序比較兩個(gè)字符串的值,如果發(fā)現(xiàn)到不同的字符,則按字段順序認(rèn)定大小,如果沒有發(fā)現(xiàn)不同字符,Oracle則認(rèn)為兩個(gè)字符串相等。這個(gè)規(guī)則意味著,如果只是尾號(hào)中有不同數(shù)目的空格,那么則認(rèn)為兩個(gè)字符串是相等的。如'a '='a'.

  使用填補(bǔ)空格的語義比較,Oracle只針對(duì)char,nchar,字面量,或user函數(shù)返回的值。

  非填補(bǔ)空格的語義比較:

  Oracle通過字符順序比較兩個(gè)字符串的值。如果發(fā)現(xiàn)到字符值大的則大。如果兩個(gè)字符串長(zhǎng)度不同,則發(fā)現(xiàn)到字符值大的則大,否則長(zhǎng)度大的則大,比如'b'>'ab','ab'>'a'.如果長(zhǎng)度相等,并且各個(gè)位置字符相同,則認(rèn)定為相等。

  使用非填補(bǔ)空格的語義比較,Oracle針對(duì)varchar2和nvarchar2。

  

  1.注意使用char,char是定長(zhǎng)類型,不足長(zhǎng)度末尾補(bǔ)空格,比較大小采用填補(bǔ)空格的語義比較

  2.注意char與其他字符連接,如

  1.declare

  2.a char(3):='ab';

  3.b char(6):='ab';

  4.begin

  5.dbms_output.put_line(a||'c'); --ab c 其中ab和c之間有一個(gè)空格

  6.dbms_output.put_line(b||'c'); --ab c 其中ab和c之間有4個(gè)空格

  7.if a||'c' >b||'c' then

  8.dbms_output.put_line(1); //成立,采用非語義比較。

  9.end if;

  10.end;

  3.在使用char的sql中,或表類型定義中,確定是定長(zhǎng)的才使用,否則可能導(dǎo)致相關(guān)問題,如果有char的,比如要查詢,如where charstring='abcd',后面的字面量最好和char長(zhǎng)度一致

  4.其實(shí)char 的效率和varchar2沒有什么區(qū)別。tom測(cè)試過。

關(guān)鍵詞標(biāo)簽:Oracle

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法