Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Пн Авг 06, 2012 09:29  %rowtable и %rowtype |
|
Полезность: Нет оценки
|
Коллеги, столкнулся с небольшой проблемой:
В операции есть переменная V_PART_TO_LOAN типа массив "Доля обеспечения на кредитный договор".
Я хочу проинициализировать этот массив без перечисления его реквизитов. Конструкция должна выглядеть примерно сл. образом:
Код: |
select x(x%rowtype([OBJECT]))
in this.[PART_TO_LOAN]
into V_PART_TO_LOAN;
|
Однако, V_PART_TO_LOAN в пакете операции имеет тип
Код: |
V_PART_TO_LOAN Z#PART_TO_LOAN#INTERFACE.TABLE#PART_TO_LOAN;
|
И %rowtype возвращает структуру, отличную от %rowtable. Различие в представлении реквизитов типа BOOLEAN; Такие образом запрос выдает ошибку "Несоответствие типов"
Код: |
TYPE CLASS#PART_TO_LOAN IS RECORD (
ID NUMBER, CLASS_ID VARCHAR2(16), COLLECTION_ID NUMBER, STATE_ID VARCHAR2(16),
A#PRODUCT NUMBER,
[b]A#PRC_ATTR BOOLEAN,
A#FIX BOOLEAN,[/b]
A#PART NUMBER,
A#DOCUMENT NUMBER,
A#PRIORITY NUMBER(5),
[b]A#AUTO BOOLEAN,[/b]
A#NOM_PRIORITY_DOG NUMBER(5)
);
TYPE TABLE#PART_TO_LOAN IS TABLE OF CLASS#PART_TO_LOAN INDEX BY BINARY_INTEGER;
TYPE CLSROW#PART_TO_LOAN IS RECORD (
ID NUMBER, CLASS_ID VARCHAR2(16), COLLECTION_ID NUMBER,
C_PRODUCT NUMBER,
[b]C_PRC_ATTR VARCHAR2(1),[/b]
[b]C_FIX VARCHAR2(1),[/b]
C_PART NUMBER,
C_DOCUMENT NUMBER,
C_PRIORITY NUMBER(5),
[b]C_AUTO VARCHAR2(1),[/b]
C_NOM_PRIORITY_DOG NUMBER(5)
);
TYPE TBLROW#PART_TO_LOAN IS TABLE OF CLSROW#PART_TO_LOAN;
|
И вобщем нифига не получается заполнить V_PART_TO_LOAN без перечисления реквизитов..
Может быть кто-то уже сталкивался с подобной проблемой и знает волшебное слово? |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пн Авг 06, 2012 12:46   |
|
Полезность: 3
|
Нужно делать примерно вот так:
Код: |
V_PART_TO_LOAN ::[PART_TO_LOAN]%rowtable;
i integer;
begin
select x(x%rowtype([OBJECT]), x%rowtype('nosys'))
in this.[PART_TO_LOAN]
into V_PART_TO_LOAN%rowtype;
i := V_PART_TO_LOAN%id.count;
if i > 0 then
null; -- тут нужный код
end if;
end;
|
|
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|