Null Values
- Last Updated: May 15, 2020
- 1 minute read
- DataDirect Connectors
- JDBC
- IBM Db2 5.1
- MySQL 5.1
- Progress OpenEdge 5.1
- SAP Sybase 5.1
- Documentation
When the Sybase driver establishes a connection, the driver sets the Sybase database option ansinull to on. This action ensures that the driver is compliant with the ANSI SQL standard, which makes developing cross-database applications easier.
By default, Sybase does not evaluate null values in SQL equality (=) or inequality (<>)
comparisons or aggregate functions in an ANSI SQL-compliant manner. For example, the ANSI SQL
specification defines that col1=NULL as shown in the following Select
statement always evaluates to false:
SELECT * FROM table WHERE col1 = NULL
Using the default database setting ansinull=off, the same comparison evaluates to true instead of false.
Setting ansinull to on changes how the database handles null values and forces the use of
IS NULL instead of =NULL. For example, if the value of
col1 in the following Select statement is null, the comparison evaluates to true:
SELECT * FROM table WHERE col1 IS NULL
In your application, you can restore the default Sybase behavior for a connection in the following ways:
- Use the InitializationString property to specify the SQL command
set ANSINULL off. For example, the following URL ensures that the handling of null values is restored to the Sybase default for the current connection:jdbc:datadirect:sybase://server1:5000;InitializationString=set ANSINULL off;DatabaseName=test - Explicitly execute the following statement after the connection is
established:
SET ANSINULL OFF