2

私は2つのデータベースを持っています

  • IP アドレス 192.168.10.5 のユーザー a を持つ DB1
  • IP アドレス 192.168.10.6 のユーザー b を持つ DB2

DB2には、という名前の既存のテーブルがありますtb_r_system

DB1でデータベースリンクを作成してtb_r_system、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