Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / PL SQL Data Types
 

Compare char against varchar, and the trailing spaces do matter

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    var_length_10 := 'ZZZZ';  12    IF fixed_length_10 = var_length_10 THEN  13      DBMS_OUTPUT.PUT_LINE('Char and Varchar2: '''  14        || fixed_length_10 || ''' = '''  15        || var_length_10 || '''');  16    ELSE  17      DBMS_OUTPUT.PUT_LINE('Char and Varchar2: '''  18       || fixed_length_10 || ''' NOT = '''  19       || var_length_10 || '''');  20    END IF;  21  22  END;  23  / Char and Varchar2: 'ZZZZ     ' NOT = 'ZZZZ' PL/SQL procedure successfully completed. SQL>