Название реквизитов таблицы
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 25, 2013 13:52  Название реквизитов таблицы |
|
Полезность: Нет оценки
|
Добрый день,
Как можно вытащить название полное и короткое реквизитов таблицы (как в словаре они называются) через PL+.
Например Z#DEPN? |
|
![](templates/subSilver/images/spacer.gif) |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пн Ноя 25, 2013 14:17   |
|
Полезность: 1
|
select * from class_attributes where class_id = 'BS3_CLIENT' |
|
![](templates/subSilver/images/spacer.gif) |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 25, 2013 14:23   |
|
Полезность: Нет оценки
|
Vtar, у меня нет доступа к Оракловой базе чтобы нарисовать SQL.
Мне бы PL+ представление в словаре накатать ![Embarassed](images/smiles/icon_redface.gif) |
|
![](templates/subSilver/images/spacer.gif) |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 25, 2013 14:37   |
|
Полезность: Нет оценки
|
Код: |
type main is
select a (a) in class_attributes%rowtype;
|
Судя по этому немного не то. Мне надо в таблице Z#DEPN все 80 столбцов с их наименованиями по русски (как они называются в словаре). |
|
![](templates/subSilver/images/spacer.gif) |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Ноя 25, 2013 15:39   |
|
Полезность: Нет оценки
|
Что то типа такого хочется получить (получил через АДМ ПРОЕКТОВ - Блокнот - Открытие файла в Ексель с разделителем ","):
'Вид депозитного договора' VID_DOG VID_DEPOSIT_REF
'Номер счета' ACCOUNT AC_FIN_REF
'Валюта' FINTOOL FT_MONEY_REF
'Сумма договора' SUMMA_DOG SUMMA
'Процентная ставка по договору' PRC_DOG REF_PRC_SCH
'Плановые операции по депозиту' LIST_PLAN_PAY PLAN_OP
'Журнал начисленных процентов' JOUR_CALC_PRC JOUR_CALC_PRC
'Фактические операции по договору' LIST_PAY FACT_OPER_ARR
'Счет расходов для выплаты процентов' ACC_EXPEND_PRC AC_FIN_REF
'Процентная ставка за дорогу' PRC_WAY REF_PRC_SCH |
|
![](templates/subSilver/images/spacer.gif) |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пн Ноя 25, 2013 16:32   |
|
Полезность: Нет оценки
|
yaffil пишет: | Vtar, у меня нет доступа к Оракловой базе чтобы нарисовать SQL. |
Я весьма опечален сим прискорбным фактом. ЦФТ оутсоурсинг рулез?
Код: |
i integer;
begin
--select attr_id, NAME, self_class_id from class_attributes where class_id = 'DEPN'
i := 0;
for
(
select x(x.attr_id : x_id, x.NAME : x_name, x.self_class_id : x_sc)
in class_attributes%rowtype
where x.class_id = 'DEPN'
union all
select x(x.attr_id : x_id, x.NAME : x_name, x.self_class_id : x_sc)
in class_attributes%rowtype
where x.class_id = 'PRODUCT'
)
loop
i := i +1;
debug_pipe(i||' '||x.x_id||' '||x.x_name||' '||x.x_sc,0);
end loop;
end; |
|
|
![](templates/subSilver/images/spacer.gif) |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пн Ноя 25, 2013 16:40   |
|
Полезность: 1
|
Код: |
i integer;
begin
i := 0;
for
(
select x(x.attr_id : x_id, x.NAME : x_name, x.self_class_id : x_sc)
in class_attributes%rowtype
where x.class_id in ('DEPN','PRODUCT')
)
loop
i := i +1;
debug_pipe(i||' '||x.x_name||' '||x.x_id||' '||x.x_sc,0);
end loop;
end;
|
|
|
![](templates/subSilver/images/spacer.gif) |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Ноя 26, 2013 05:57   |
|
Полезность: 1
|
vtar пишет: |
...
|
Хочу уточнить, уважаемый Vtar
class_attributes не такая простая, как кажется.
Например, возьмём MAIN_DOCUM:
select * from class_attributes where class_id = 'MAIN_DOCUM';
обратим внимание на реквизиты, которые называются KL_DT, KL_KT, LABELS, REQ_MAN...
В таблице Z#MAIN_DOCUM им соответствует целый набор колонок, сформированных как C_<имя квалификатора>#<имена реквизитов в ТБП, указанном в self_class_id>
Получается, для сопоставления колонок и реквизитов необходим иерархический запрос, который не слишком удобен, да и не всегда соответствует реальности.
гораздо удобнее использовать select * from class_tab_columns where class_id = 'MAIN_DOCUM' and deleted = 0.
В этой табличке уже развёрнута вся иерархия. |
|
![](templates/subSilver/images/spacer.gif) |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Ноя 26, 2013 08:12   |
|
Полезность: Нет оценки
|
vtar пишет: |
Код: |
select x(x.attr_id : x_id, x.NAME : x_name, x.self_class_id : x_sc)
in class_attributes%rowtype
where x.class_id in ('DEPN','PRODUCT')
|
|
Спасибочки, то, что доктор прописал. |
|
![](templates/subSilver/images/spacer.gif) |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Ноя 26, 2013 09:24   |
|
Полезность: Нет оценки
|
Random пишет: | обратим внимание на реквизиты, которые называются KL_DT, KL_KT, LABELS, REQ_MAN...
|
а, по сути развертка "вложенных структур" . На CLIENT тоже можно вляпаться , по ходу. Я понял, спасибо, буду иметь в виду. |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|