Создание курсора для подключения к удаленной БД - PullRequest
0 голосов
/ 27 августа 2018

Пытался получить данные из таблицы удаленных БД по ссылке БД в такой процедуре, как my_procedure (DB_LINK). Как создать курсор для связи с удаленной БД через этот параметр в Oracle?

1 Ответ

0 голосов
/ 27 августа 2018

Я не уверен, что то, что вы спрашиваете, возможно в том виде, как вы его описываете. DB LINK объявлен на уровне базы данных, и я не уверен, что он может быть назначен как параметр напрямую. Хотя я могу ошибаться.

Мы добиваемся аналогичных результатов в моей работе, делая что-то вроде этого:

   -- untested
   PROCEDURE my_procedure(target_db IN VARCHAR2) IS
   BEGIN
      IF target_db = 'database1' THEN
         EXECUTE IMMEDIATE 'UPDATE myTable' || database1_dbLinkName ||
                           ' SET a = b WHERE x = z';
         NULL;
      ELSIF target_db = 'database2' THEN
         -- ...
         NULL;
      END IF;
   END;

Я не помню точный синтаксис для содержания database1_dbLinkName. Я считаю, что это просто "@yourDbLinkName".

Я рекомендую вам прочитать эту страницу, если вы хотите узнать больше: https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:4410488400346721382

...