oracle函数与存储过程中的类型问题---char 与 varchar2

 select count(*) into v_count from testTable where id0000 = v_id0000;

上面这条语句是某一个函数中的一条SQL语句,

其中v_id0000是函数的一个变量,类型为varchar2(20),

而id0000是testTable的一个字段,类型为char(19),

这种情况即使testTable表中有与v_id0000对应的记录,v_count也会是0,结果是错误的,必须把v_id0000的类型设置为char(19),这样v_count才不会是0,结果才会是正确的。

问题原因:

char(length)类型的字段,如果你字段实际的值的长度比你定义的char类型的length小时,oracle会自动在后面填充空格,直到字段的长度达到你定义的length大小;举个例子:你定义了一个名为field1的字段,类型为char(6),然后你给这个字段赋值“aa”,赋值后实际的值会变成“aa    ”(后面自动被填充了4个空格);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值