ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【基础】ORACLE CHAR 与 VARCHAR

【基础】ORACLE CHAR 与 VARCHAR

原创 Linux操作系统 作者:散叶涔 时间:2012-04-23 19:46:29 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-04-17

  • 博文量
    44
  • 访问量
    117378