【基础】ORACLE CHAR 与 VARCHAR

本文探讨了在Oracle数据库中,不同长度的CHAR与VARCHAR类型变量在进行字符串比较时的行为差异。通过具体的例子说明了CHAR类型会根据定义的长度在字符串末尾补充空格,而VARCHAR类型则不会。此外,即使字符串内容相同,如果类型或定义长度不同,也会被视为不同的值。
摘要由CSDN通过智能技术生成
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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26892340/viewspace-722062/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值