我们如何使用Pro * C代码连接到两个不同的数据库。我在tnsnames.ora文件中有条目。默认情况下,它使用EXEC SQL CONNECT语句连接到其中一个数据库,我不确定它是如何连接的。我想连接到另一个在tnsnames.ora文件中有条目的数据库。我正在使用OpenVMS OS。
答案 0 :(得分:0)
Vijay Kumar
下面概述了我在通过过程中为完成此操作所做的事情。
默认连接
如果代码中没有CONNECT语句,则Oracle在遇到第一个SQL语句时将执行自动连接。它使用设置数据库的人配置的凭据信息。
多个连接
要连接到Pro C中的多个数据库,必须显式连接代码所引用的所有数据库。
下面的概述是我在传递过程中完成此操作的3个步骤:
示例代码:
/*
* Declare the database aliases
*/
EXEC SQL DECLARE DB1 DATABASE;
EXEC SQL DECLARE DB2 DATABASE;
/*
* Explicitly connect to the database. Include an AT clause to name the connection
*/
EXEC SQL CONNECT :db1_uid IDENTIFIED BY :db1_pwd
AT DB1;
EXEC SQL CONNECT :db2_uid IDENTIFIED BY :db2_pwd
AT DB2;
/*
* In the SQL statements, reference the connection by including the AT clause.
*/
EXEC SQL AT DB1 SELECT COL1 INTO :var1
FROM TABLE_1
WHERE COL2 = 'some_value';
EXEC SQL AT DB2 SELECT COLUMN1 INTO :var2
FROM TABLE_2
WHERE COLUMN2 = 'some_value';
EXEC SQL AT DB1 COMMIT WORK RELEASE;
EXEC SQL AT DB2 COMMIT WORK RELEASE;
注意事项:
DB1和DB2是程序员定义的别名。
由变量db1_pwd和db2_pwd表示的密码必须是 变量而不是硬编码值。
存储在变量db1_uid和db1_uid2中的用户名值采用以下格式:username @ DatabaseName
请注意,我相信还有其他方法可以完成此操作。这是我成功上班的方法。
中找到有关连接数据库的更多信息。