Compare fixed length string and a literal : CHAR « PL SQL Data Types « Oracle PL/SQL Tutorial






SQL>
SQL> SET ECHO ON
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
  2    fixed_length_10  CHAR(10);
  3    fixed_length_20  CHAR(20);
  4    var_length_10    VARCHAR2(10);
  5    var_length_20    VARCHAR2(20);
  6  BEGIN
  7
  8    fixed_length_10 := 'ZZZZ';
  9    
 10    
 11     IF fixed_length_10 = 'ZZZZ' THEN
 12      DBMS_OUTPUT.PUT_LINE('Char and constant: '''
 13       || fixed_length_10 || ''' = ''' || 'ZZZZ' || '''');
 14    END IF;
 15
 16  END;
 17  /
Char and constant: 'ZZZZ     ' = 'ZZZZ'

PL/SQL procedure successfully completed.








21.2.CHAR
21.2.1.CHAR
21.2.2.CHAR type variable
21.2.3.Compare CHAR and VARVHAR32 variables for equality
21.2.4.Constants are compared using blank-padded comparison semantics, so the trailing spaces won't affect the result.
21.2.5.Fixed length strings are compared with blank-padded comparison semantic
21.2.6.Compare fixed length string and a literal
21.2.7.Compare char against varchar, and the trailing spaces do matter.
21.2.8.Assigning an empty string to the character variable is exactly the same as assigning NULL to it.