Oracle PL / SQL CHAR VARCHAR2
CHAR数据类型存储固定长度的字符串。
VARCHAR2数据类型存储可变长度字符串。
所有字符串文字的数据类型为CHAR。
用于指定CHAR或VARCHAR2数据项的语法是:
[ CHAR | VARCHAR2 ] [( maximum_size [ CHAR | BYTE ] )]
例如:
CHAR
VARCHAR2
CHAR(10 CHAR)
VARCHAR2(32 BYTE)
maximum_size必须是1..32767范围内的整数字面值。
默认值为1。
比较字符值
在下面的例子中展示了如何比较两个VARCHAR2的值。
DECLARE
last_name1 VARCHAR2(10) := 'HTML';
last_name2 VARCHAR2(10) := 'HTML5';
BEGIN
IF last_name1 > last_name2 THEN
DBMS_OUTPUT.PUT_LINE (last_name1 || ' is greater than ' || last_name2);
ELSE
DBMS_OUTPUT.PUT_LINE (last_name2 || ' is greater than ' || last_name1 );
END IF;
END;
/
注意
如果两个值都是CHAR,则PL / SQL在将它们比较之前,将较短的值填充为较长值的长度。
如果任一值为VARCHAR2,PL / SQL在比较它们之前不调整它们的长度。
DECLARE
last_name1 CHAR(5) := 'HELLO'; -- no trailing blanks
last_name2 CHAR(10) := 'HELLO '; -- trailing blanks
BEGIN
IF last_name1 = last_name2 THEN
DBMS_OUTPUT.PUT_LINE (last_name1 || ' is equal to ' || last_name2);
ELSE
DBMS_OUTPUT.PUT_LINE (last_name2 || ' is not equal to ' || last_name1);
END IF;
END;
/
比较两个VARCHAR2值
比较两个VARCHAR2值
DECLARE
last_name1 VARCHAR2(10) := 'HELLO'; -- no trailing blanks
last_name2 VARCHAR2(10) := 'HELLO '; -- trailing blanks
BEGIN
IF last_name1 = last_name2 THEN
DBMS_OUTPUT.PUT_LINE (last_name1 || ' is equal to ' || last_name2 );
ELSE
DBMS_OUTPUT.PUT_LINE (last_name2 || ' is not equal to ' || last_name1);
END IF;
END;
/
实例2
比较CHAR值和VARCHAR2值
DECLARE
last_name1 VARCHAR2(10) := 'HELLO';
last_name2 CHAR(10) := 'HELLO'; -- PL/SQL blank-pads value
BEGIN
IF last_name1 = last_name2 THEN
DBMS_OUTPUT.PUT_LINE (last_name1 || ' is equal to ' || last_name2);
ELSE
DBMS_OUTPUT.PUT_LINE (last_name2 || ' is not equal to ' || last_name1 );
END IF;
END;
/