开发环境:linux7.3
oracle8.1.7
pro*c
我想把本地数据库中一个表的数据拷贝到另外一台机器的数据库的表中
在sqlplus下测试通过
我想用pro*c程序实现
但是隐式连接不通清高手执教
EXEC SQL CREATE DATABASE LINK db_link1 CONNECT TO system IDENTIFIED BY manager USING 'local';
EXEC SQL CREATE DATABASE LINK db_link2 CONNECT TO system IDENTIFIED BY manager USING 'remote';
EXEC SQL INSERT INTO dest_tbl@db_link2 SELECT * FROM source_tbl@db_link1;
执行结果‘NOT LOGGED ON'
oracle8.1.7
pro*c
我想把本地数据库中一个表的数据拷贝到另外一台机器的数据库的表中
在sqlplus下测试通过
我想用pro*c程序实现
但是隐式连接不通清高手执教
EXEC SQL CREATE DATABASE LINK db_link1 CONNECT TO system IDENTIFIED BY manager USING 'local';
EXEC SQL CREATE DATABASE LINK db_link2 CONNECT TO system IDENTIFIED BY manager USING 'remote';
EXEC SQL INSERT INTO dest_tbl@db_link2 SELECT * FROM source_tbl@db_link1;
执行结果‘NOT LOGGED ON'
EXEC SQL SELECT * FROM test_tbl@local;执行结果‘NOT LOGGED ON'
/* 外部函数
/******************************************************************************//* 连接数据库 */
/* return value: 1 success, 0 failure */
int db_connect(const char * usr)
{
VARCHAR RegUsr[30];
strcpy((char *)RegUsr.arr,usr);
RegUsr.len = strlen((const char *)RegUsr.arr);
EXEC SQL WHENEVER SQLERROR goto sql_err;
db_disconnect();
EXEC SQL connect:RegUsr;
return 1;
sql_err:
return 0;
}
/* 断开 */
void db_disconnect()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK WORK RELEASE;
return ;
}你的程序既然编译通过,应该配置差不多了,如有问题,可参见
http://expert.csdn.net/Expert/topic/2092/2092655.xml?temp=.9889795wish can help you