2

我有 2 个数据库

  • DB1 与用户 a 的 IP 地址为 192.168.10.5
  • DB2 与用户 b 的 IP 地址为 192.168.10.6

在 DB2 中,我有一个名为tb_r_system

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

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

tb_r_system然后我更改在,中添加新列TEST_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;

我会很感激任何帮助

4

0 回答 0