Top Banner
Accessing ORACLE data through SAS Susanne Young Bank One
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Accessing ORACLE data through SAS

Susanne Young Bank One

Overview

You need to use SAS to access data stored in Oracle tables or views

Options

LIBNAME statement pass-thru SQL query

LIBNAME statement

LIBNAME MYORALIB ORACLE USER=MYUID PW=MYPASSWORD PATH='@OraInfo' SCHEMA=MYSCHEMA;

LIBNAME statement14 LIBNAME MYORALIB ORACLE USER=MYUID PW=XXXXXXX PATH='@OraInfo' SCHEMA=MYUID NOTE: Libref MYORALIB was successfully assigned as follows: Engine: ORACLE Physical Name: @OraInfo

LIBNAME statement

LIBNAME statementPROC PRINT DATA=MYORALIB.NBR_DAYS_TO_DATE_LKUP; RUN;

LIBNAME statement

Helpful Info

Automatic macro variables

&sysdbmsg displays the DBMS error messages58 %put &sysdbmsg; ORACLE: ORA-01017: invalid username/password; logon denied

&sysdbrc displays the DBMS error codes59 %put &sysdbrc; -1017

Sql pass thru queryPROC SQL; CONNECT TO ORACLE(USER=MYUID ORAPW=MYPASSWORD PATH='@OraInfo'); SELECT * FROM CONNECTION TO ORACLE (SELECT * FROM MYSCHEMA.NBR_DAYS_TO_DATE_LKUP); DISCONNECT FROM ORACLE; QUIT;

Sql pass thru query

Sql pass thru query

Execute statementexecute (grant select on MYSCHEMA.MY_TABLE to OTHERUID) by oracle; execute (execute credit(234,5000)) by oracle; execute (create unique index my_pk on MYUID.MY_TABLE (MYFIELD) ) by oracle; Execute (drop table MYUID.MY_TABLE) by oracle;

Sql pass thru query

Automatic macro variables

&sqlxmsg displays the DBMS error messages64 %put &SQLXMSG; ORA-12560: TNS:protocol adapter error

&sqlxrc displays the DBMS error codes65 %put &SQLXRC; -12560

What you need to know Path= option

What you need to know

What you need to know Schema = option

In Microsoft Access, when connecting to Oracle tables, the Schema name is identified as the text to the left of the period.

The best way to find out is to go to the source, your Oracle DBA

Error Messages The service youre referencing is not configured in your sqlnet.ora file.ERROR: ORACLE connection error: ORA-12154: TNS:could not resolve service name. ERROR: Error in the LIBNAME statement.

You do not have SAS/Access for ORACLE or its not configured properlyERROR: The SAS/ACCESS Interface to ORACLE cannot be loaded. The SASORA code appendage could not be loaded. ERROR: Error in the LIBNAME statement.

Error Messages Youve entered your User ID or password incorrectly or its expired.ERROR: ORACLE connection error: ORA-01017: invalid username/password; logon denied. ERROR: Error in the LIBNAME statement.

Options The following option statement causes information about the query that is being passed to Oracle to be printed in the SAS log, so you can see the logic being passed.Options SASTRACE= ,,,d SASTRACELOC=SASLOG;

Alternatives

So what if I dont have SAS/Access for Oracle?

Using ODBC drivers Syntax for Libname statement

LIBNAME MYORALIB ODBC DSN=MyOracle UID=MYUID PW=MYPASSWORD SCHEMA=MYSCHEMA; PROC SQL; CONNECT TO ODBC(DSN=MyOracle UID=MYUID PW=MYPASSWORD); SELECT * FROM CONNECTION TO ODBC (SELECT * FROM FIN1MGR.NBR_DAYS_TO_DATE_LKUP); DISCONNECT FROM ODBC; QUIT;

Syntax for pass-thru SQL query

Conclusion SAS offers a variety of ways to access data that is stored in Oracle. Work with your Oracle DBA to assistance with connection questions. Utilize the numerous Users Group papers on the subject of methods and efficiencies accessing Oracle data.

References SUGI 27 Data Warehousing and Enterprise Solutions

Cant Relate? A Primer on using SAS with your relational database

Garth Helf, IBM Corporation

SUGI 26 Advanced Tutorials

Database Access Using the SAS System

Frederic Pratter, Computer Science Department, University of Montana Missoula

SUGI 28 Advanced Tutorials

SAS/ACCESS to External Databases: Wisdom for the Warehouse User

Judy Loren, Health Dialog Data Service, Inc

SUGI 27 Advanced Tutorials

Reading From Alternate Sources: What To Do When The Input Is Not a Flat File

Michael Davis, Bassett Consulting Services