在表中添加新列时,数据库链接上的标识符无效

时间:2014-02-13 02:40:24

标签: oracle plsql database-link

我有2个数据库

  • DB1,用户a,IP地址为192.168.10.5
  • DB2,用户b,IP地址为192.168.10.6
在DB2中,我有一个名为tb_r_system

的表

我在DB1中创建数据库链接以获取DB2中的表tb_r_system

  CREATE DATABASE LINK test_db_link
    CONNECT TO user00 IDENTIFIED BY user00
    USING 'RED_SERVICE';

然后我在tb_r_systemTEST_COLUMN中更改添加新列。之后我尝试从DB1中选择

select * from tb_r_system@test_db_link;

它会显示新列TEST COLUMN

的结果

但是当我尝试在包中获取此新列时,它显示错误

  

ORA00904 L Invalid identifier

我在DB1中的包

CREATE OR REPLACE PACKAGE pkg_acatestw IS

  FUNCTION test_db_link(test IN VARCHAR2) 
    RETURN PLS_INTEGER;

  END pkg_acatestw;/

  CREATE OR REPLACE PACKAGE BODY pkg_acatestw IS

      FUNCTION test_db_link(test IN VARCHAR2) RETURN PLS_INTEGER IS
       tar INTEGER;
      BEGIN

        SELECT COUNT(test_column) -------------> this line cause error invalid identifier
        INTO tar
        FROM tb_r_system@test_db_link dual;

        RETURN 1;
    EXCEPTION
     WHEN OTHERS THEN
        RETURN 1;
    END test_db_link;

END pkg_acatestw;

我很感激任何帮助

0 个答案:

没有答案