Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Куда пропал столбец?? / 3 сообщений из 3, страница 1 из 1
24.09.2021, 16:13
    #40099812
stil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Куда пропал столбец??
Объявляю в спецификации пакета коллекцию строчек таблицы: успешно
Заполняю из этой таблицы коллекцию через BULK COLLECT: успешно

Пытаюсь обратиться к таблице через TABLE - и в ней почему то ORACLE не видит одного из столбцов. Как так?

Код ниже
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
 
  
 CREATE OR REPLACE PACKAGE PKG_CLIENTS
...
 TYPE t_crm_cl IS TABLE OF CRM_CLIENTS@dblink%ROWTYPE;
 T_CRM_CLIENTS_REC t_crm_cl;
END;

CREATE OR REPLACE PACKAGE BODY PKG_CLIENTS
AS

...

        SELECT *
        BULK COLLECT
        INTO T_CF_CRM_CLIENTS_REC
        FROM CF_CRM_CLIENTS@dblink cf;

        MERGE INTO CLIENTS dst
        USING
        (
            SELECT
                cf.CRM_ID,
                ...
                pc.ID AS CLIENT_ID
            FROM
                --CRM_CLIENTS@dblink cf
                TABLE(T_CRM_CLIENTS_REC) cf
                INNER JOIN M_CLIENTS pc on pc.CRM_ID = cf.CRM_ID



При компиляции получаю: cf.CRM_ID: invalid identifier

Столбец CRM_ID безусловно есть: если убрать коллекционный синтаксис все прекрасно работает
v12
...
Рейтинг: 0 / 0
24.09.2021, 17:04
    #40099853
flexgen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Куда пропал столбец??
stil,

Как-то не очень понятно, сначала ты объявляешь переменную T_CRM_CLIENTS_REC типа t_crm_cl.
Код: plsql
1.
2.
TYPE t_crm_cl IS TABLE OF CRM_CLIENTS@dblink%ROWTYPE;
T_CRM_CLIENTS_REC t_crm_cl;


Потом ты делаешь BULK COLLECT в другую переменную, T_CF_CRM_CLIENTS_REC
Код: plsql
1.
2.
3.
4.
SELECT *
BULK COLLECT
INTO T_CF_CRM_CLIENTS_REC
FROM CF_CRM_CLIENTS@dblink cf;


А где ты ее обьявил? Я не увидел.

Потом делаешь merge используя T_CRM_CLIENTS_REC.
Код: plsql
1.
TABLE(T_CRM_CLIENTS_REC)


А зачем тогда T_CF_CRM_CLIENTS_REC?
...
Рейтинг: 0 / 0
24.09.2021, 19:16
    #40099932
Egoр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Куда пропал столбец??
Код: plsql
1.
2.
3.
4.
...

                value(cf).CRM_ID,
...
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Куда пропал столбец?? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]