开发环境: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'  
 

解决方案 »

  1.   

    一个连接的也不通EXEC  SQL  CREATE  DATABASE  LINK  db_link1  CONNECT  TO  system  IDENTIFIED  BY  manager  USING  'local';  
     EXEC SQL SELECT * FROM test_tbl@local;执行结果‘NOT  LOGGED  ON'  
      

  2.   

    你的连接有问题,为了简单,我只把连接作为一个整体 例如:user/pass@orcl用下面的函数连接数据库/******************************************************************************/
    /* 外部函数
    /******************************************************************************//* 连接数据库   */   
    /* 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