因为char型字符的特殊,比如规定CHAR(5 ),如果输入1,那么在检索的时候按照条件是1的话就很可能查不出数据,因为数据库以空格填充了。 CHAR型的字段多半是比较重要的字段,更多的时候是主键,所以为了统一管理基本都采用填充处理。
1.左右补充零的策略:
UPDATE
T_KCMTOKUIM
set
TKI_CDE
=
LPAD(
'
1
'
,
6
,
'
0
'
)
WHERE
TKI_CDE
=
'
1
'
;
以上是左补零。长度是6。右补当然是RPAD()了。
今天又看到了另一种左补的方法:
UPDATE
T_KCMTOKUIM
set
TKI_CDE
=
TO_CHAR(
1
,
'
FM000000
'
)
WHERE
TKI_CDE
=
'
1
'
;
顺便采用这种方式做个名称更新:
BEGIN
FOR i IN 1 .. 10 LOOP
UPDATE T_KCMTOKUIM SET TKI_NAM_RYK_OLD =’ 客户略称(旧)‘ || i WHERE TKI_CDE = TO_CHAR(i, ' FM000000 ' );
UPDATE T_KCMTOKUIM SET TKI_NAM_RYK_NEW = ’客户略称(新)‘ || i WHERE TKI_CDE = TO_CHAR(i, ' FM000000 ' );
END LOOP;
END ;
FOR i IN 1 .. 10 LOOP
UPDATE T_KCMTOKUIM SET TKI_NAM_RYK_OLD =’ 客户略称(旧)‘ || i WHERE TKI_CDE = TO_CHAR(i, ' FM000000 ' );
UPDATE T_KCMTOKUIM SET TKI_NAM_RYK_NEW = ’客户略称(新)‘ || i WHERE TKI_CDE = TO_CHAR(i, ' FM000000 ' );
END LOOP;
END ;