var1 为 CHAR(3)
var2 为 CHAR(6)
var1 := 'aa'
var2 := ' aa'
IF var1 = var2 THEN ......这个判断返回 ture 还是 false?
问题 2:
var1 为 VARCHAR(3)
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?
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位,所以不同。
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/