Defining a schema in SAS/ACCESS® Interface to OLEDB


When you use SAS/ACCESS Interface to OLEDB to connect to a database, the SAS® System looks for tables that are owned or created by the user ID that is listed in the LIBNAME statement. If the software does not find any tables associated with that user ID, the SAS log still shows that the library was assigned successfully, as shown in the following example output:

libname mylib oledb init_string="connection parameters";
NOTE: Libref MYLIB was successfully assigned as follows:
Engine: OLEDB

However, no tables appear in the library in the SAS Explorer window, as shown here:

The library does not show any tables because there are no tables owned or created by the user ID from the LIBNAME statement. Therefore, you need to define a schema in the LIBNAME statement. A schema is the owner or creator of tables. To see tables that are owned or created by a different user, you must use the SCHEMA=schema-name option in the LIBNAME statement.

To determine the schema for your tables, follow these steps:

  1. Submit the following code using your OLEDB user ID and password:
    proc sql;
    connect to oledb;
    create table work.oledbSchema as select table_name, table_schema from connection to oledb(OLEDB::Tables);
    quit;

    After you run the code, open the created table to see the schema and table names:

  2. Scroll through the Work.oledbSchema table to find the owner name for the table that you want to see.
  3. Use the owner name for that table as the value in the SCHEMA= option in your LIBNAME statement. For example, if you want to see the FIRST table, you must use SCHEMA=DBITEST in the LIBNAME statement, as shown here:
    libname mylib oledb init_string="connection parameters" schema=dbitest;

When you submit the LIBNAME statement in this example, the tables with a schema value of DBITEST appear in the Explorer window.