Type conversion rules
Informix®
When using parameterized SQL statements (SQL with program variables), the Informix SQL engine supports various type conversions.
VARCHAR column to an
INTEGER program variable:MAIN
    DEFINE v_int INTEGER
         , v_count INTEGER
    DATABASE test1
    CREATE TABLE tt1 ( col1 VARCHAR(10) )
    INSERT INTO tt1 VALUES ( '12345' )
    LET v_int = 12345
    SELECT COUNT(*) INTO v_count
       FROM tt1 WHERE col1 = v_int
    DISPLAY "count = ", v_count
END MAINPostgreSQL
PostgreSQL is more strict as Informix when comparing or assigning SQL column values to program variable, if the data types do not match.
- SQLSTATE: 
42883 - SQL message: 
operator does not exist: character varying = integer 
A similar error is raised for date vs string and decimal vs string types.
Solution
A good coding convention is to always use a program variable type that corresponds to the database column type.
For a complete list of Informix / PostgreSQL data type correspondance, see SQL types mapping: PostgreSQL.
Check that the data stored in the database actually requires the current type of
the column. For example, if a VARCHAR column contains (and should only contain)
whole numbers, consider to modify the column type to SMALLINT,
INTEGER or BIGINT.