How do I connect to a database using Pro*C?

15.1k views Asked by At

As the title says, how do I connect to a given database in Oracle's Pro C? I don't want the connection for Oracle database but for some other database.

3

There are 3 answers

0
paxdiablo On

You use the exec sql connect statement in your C code:

EXEC SQL CONNECT :myUserId IDENTIFIED BY :myPassword;

If you want to connect to a non-Oracle database, you will probably have to use the at version of the command:

EXEC SQL CONNECT :myUserId IDENTIFIED BY :myPassword AT :myDbName;

and set up a database link in Oracle so that it can pass requests through to the other DBMS.

DBMS' like DB2 provide transparent gateways which can give you this facility without having to go through ODBC. It depends on which DBMS you're targeting as to how you'd go about setting this up.

3
AudioBubble On

From the documentation available here and in more detail here it looks like you can embed a CONNECT statement directly in your code.

To quote the first article, a simplified connect statement would be:

EXEC SQL CONNECT { :user IDENTIFIED BY :oldpswd | :usr_psw }
   [[ AT { dbname | :host_variable }] USING :connect_string ]
      [ {ALTER AUTHORIZATION :newpswd  |  IN { SYSDBA | SYSOPER } MODE} ] ;
0
J. Chomel On

Relevant answer here if you want to connect with , using an .

Connecting to a database in Pro C using Oracle Wallet

Works great to have a wallet, and provide empty strings for :userId and :userPassword.

EXEC SQL CONNECT :mptyStr IDENTIFIED BY :mptyStr AT :ORACLE_SID;