Reputation: 113
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.
Upvotes: 0
Views: 15845
Reputation: 8395
Relevant answer here if you want to connect with oracle-pro-c, using an oracle-wallet.
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;
Upvotes: 0
Reputation: 881093
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.
Upvotes: 3
Reputation:
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} ] ;
Upvotes: 1