The LIBNAME Statement for Relational Databases |
Controls
the format of the WHERE clause when you use the DBKEY=
data set option.
Default value: |
DBMS-specific
|
Valid in: |
SAS/ACCESS LIBNAME
statement
|
DBMS support: |
Aster nCluster, DB2 under
UNIX and PC Hosts, DB2 under z/OS,
Greenplum, HP Neoview, Informix, Microsoft SQL Server, Netezza, ODBC, OLE
DB, Oracle, Sybase IQ
|
If there might be NULL values in the transaction
table or the master table for the columns that you specify in the DBKEY= data
set option, use DBNULLKEYS=YES. This is the default for most interfaces. When
you specify DBNULLKEYS=YES and specify a column that is not defined as NOT
NULL in the DBKEY= data set option, SAS generates a WHERE clause that can
find NULL values. For example, if you specify DBKEY=COLUMN and COLUMN is not
defined as NOT NULL, SAS generates a WHERE clause with the following syntax:
WHERE ((COLUMN = ?) OR ((COLUMN IS NULL) AND (? IS NULL)))
This syntax enables SAS to prepare the statement once and use it for
any value (NULL or NOT NULL) in the column. Note that this syntax has the
potential to be much less efficient than the shorter form of the following
WHERE clause. When you specify DBNULLKEYS=NO or specify a column that the
DBKEY= option defines as NOT NULL, SAS generates a simple WHERE clause.
If you know that there are no NULL values in the transaction
table or the master table for the columns that you specify in the DBKEY= option,
then you can use DBNULLKEYS=NO. This is the default for the interface to Informix.
If you specify DBNULLKEYS=NO and specify DBKEY=COLUMN, SAS generates a shorter
form of the WHERE clause, regardless of whether the column specified in DBKEY=
is defined as NOT NULL:
WHERE (COLUMN = ?)
To apply this option to an individual data set, see
the
DBNULLKEYS= Data Set Option.
DBKEY= Data Set Option
Copyright © 2010 by SAS Institute Inc., Cary, NC, USA. All rights reserved.