【基礎】ORACLE CHAR 與 VARCHAR

散葉涔發表於2012-04-23
var1 為 CHAR(3)
var2 為 CHAR(6)

var1  :=  'aa'
var2  :=  '  aa'

IF  var1 = var2  THEN  ......這個判斷返回 ture 還是 false?

問題 2:

var1 為 VARCHAR(3)
var2 為 VARCHAR(6)

var1   :=   'aa'
var2   :=   '   aa'

IF var1 = var2 THEN ......這個判斷返回 ture 還是 false?
 
---------------------------------------------
兩個都是false,char是在後補空格。

問題一中:
第一個最後長度是3,第二個最後長度是6,肯定不相等了

問題二中
最後就是var1 := 'aa',而var2 := ' aa' ,有個空格和沒空格的也不相等
 
 
----------------------------------------------
DECLARE

  var1 CHAR(3):='aa';
  var2 CHAR(6):=' aa';
  var3 VARCHAR2(3):='aa';
  var4 VARCHAR2(6):=' aa';

  flag VARCHAR2(10);

BEGIN

  IF var1 = var2 THEN
     flag:='真';
  ELSE
     flag:='假';
  END IF;
 
  dbms_output.put_line(flag);

  IF var3 = var4 THEN
     flag:='真';
  ELSE
     flag:='假';
  END IF;
 
  dbms_output.put_line(flag);

END;

最後結果是2個都是假。

第一個比較CHAR的長度不同,補過空格之後肯定不同。
第二個雖然自動縮短長度,但是一個是3位一個是2位,所以不同。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26892340/viewspace-722062/,如需轉載,請註明出處,否則將追究法律責任。

相關文章