SQL Pass-Through Facility Specifics for Sybase IQ

Key Information

For general information about this feature, see Overview of SQL Procedure Interactions with SAS/ACCESS. A Sybase IQ example is available.
Here are the SQL pass-through facility specifics for the Sybase IQ interface.
  • The dbms-name is SYBASEIQ.
  • The CONNECT statement is required.
  • PROC SQL supports multiple connections to Sybase IQ. If you use multiple simultaneous connections, you must use the alias argument to identify the different connections. If you do not specify an alias, the default sybaseiq alias is used.
  • The CONNECT statement database-connection-arguments are identical to its LIBNAME connection-options.

CONNECT Statement Example

This example uses the DBCON alias to connection to the iqsrv1 Sybase IQ database and execute a query. The connection alias is optional.
proc sql;
   connect to sybaseiq as dbcon
   (host=iqsvr1 server=iqsrv1_users db=users user=iqusr1 password=iqpwd1);
select * from connection to dbcon
   (select * from customers where customer like '1%');
quit;

Special Catalog Queries

SAS/ACCESS Interface to Sybase IQ supports the following special queries. You can the queries use to call the ODBC-style catalog function application programming interfaces (APIs). Here is the general format of the special queries:
SIQ::SQLAPI “parameter 1”,”parameter n
SIQ::
is required to distinguish special queries from regular queries. SIQ:: is not case sensitive.
SQLAPI
is the specific API that is being called. SQLAPI is not case sensitive.
"parameter n"
a quoted string that is delimited by commas.
Within the quoted string, two characters are universally recognized: the percent sign (%) and the underscore (_). The percent sign matches any sequence of zero or more characters, and the underscore represents any single character. To use either character as a literal value, you can use the backslash character (\) to escape the match characters. For example, this call to SQLTables usually matches table names such as myatest and my_test:
select * from connection to sybaseiq (SIQ::SQLTables "test","","my_test");
Use the escape character to search only for the my_test table:
select * from connection to sybaseiq (SIQ::SQLTables "test","","my\_test");
SAS/ACCESS Interface to Sybase IQ supports these special queries.
SIQ::SQLTables <"Catalog", "Schema", "Table-name", "Type">
returns a list of all tables that match the specified arguments. If you do not specify any arguments, all accessible table names and information are returned.
SIQ::SQLColumns <"Catalog", "Schema", "Table-name", "Column-name">
returns a list of all columns that match the specified arguments. If you do not specify any argument, all accessible column names and information are returned.
SIQ::SQLPrimaryKeys <"Catalog", "Schema", "Table-name">
returns a list of all columns that compose the primary key that matches the specified table. A primary key can be composed of one or more columns. If you do not specify any table name, this special query fails.
SIQ::SQLSpecialColumns <"Identifier-type", "Catalog-name", "Schema-name", "Table-name", "Scope", "Nullable">
returns a list of the optimal set of columns that uniquely identify a row in the specified table.
SIQ::SQLStatistics <"Catalog", "Schema", "Table-name">
returns a list of the statistics for the specified table name, with options of SQL_INDEX_ALL and SQL_ENSURE set in the SQLStatistics API call. If you do not specify any table name argument, this special query fails.
SIQ::SQLGetTypeInfo
returns information about the data types that the Sybase IQ database supports.