CftClub.ru
Клуб специалистов ЦФТ-Банк

Родительские и дочерние таблицы
На страницу Пред.  1, 2, 3
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеСр Янв 30, 2013 10:48    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
А так тоже самое будет?:
Код:

for (FIS_EXPORT_DEL in ::[FIS_EXPORT] where FIS_EXPORT_DEL.[CREDIT_ID] in (1,2,7,9)
      )loop
      ::[STR_CHART].[DELETE_AUTO];
end loop;


Т.е. удалятся все записи с CREDIT_ID in (1,2,7,9), а остальные остануться.


1)Деструктор это простая операция, в нее нужно передавать экземпляр.

2)А почему цикл по FIS_EXPORT, а операция из ::[STR_CHART]? ::[STR_CHART] - это родительская структура?

Тогда так должно быть

Код:


for (FIS_EXPORT_DEL in ::[FIS_EXPORT] where FIS_EXPORT_DEL.[CREDIT_ID] in (1,2,7,9)
      )loop
      FIS_EXPORT_DEL.[DELETE_AUTO];
end loop;

yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеСр Янв 30, 2013 11:06    Ответить с цитатой
Полезность: Нет оценки
Да это я не увидел сначала, поправил Smile
В твоём примере FIS_EXPORT_DEL.[DELETE_AUTO]; тоже экземпляр явно не передаётся. Надо передавать id или компилятор сам поймет что он в цикле по записям и соответствующую удалит.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеСр Янв 30, 2013 11:09    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Да это я не увидел сначала, поправил Smile
В твоём примере FIS_EXPORT_DEL.[DELETE_AUTO]; тоже экземпляр явно не передаётся. Надо передавать id или компилятор сам поймет что он в цикле по записям и соответствующую удалит.


FIS_EXPORT_DEL - это и есть текущий экземпляр в цикле (курсоре).
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеСр Янв 30, 2013 11:13    Ответить с цитатой
Полезность: Нет оценки
Ааа точно, нашел разницу Smile
Спасибо. Уже мозг едет от этого хранилища, е его выгибонами в части входящих данных для загрузки.
SS
Участник


Вступление в Клуб: 25.01.2013
СообщениеСр Янв 30, 2013 11:40    Ответить с цитатой
Полезность: Нет оценки
Random пишет:
Я пытался прикрутить GG, и пытаюсь до сих пор, но есть причины, по которым это достаточно сложно.

А вот для себя лично: поделитесь опытом настройки GG чтоб вывод был во flat-files?


К сожалению не поделюсь, прикручиванием GG занимаются дба, я занимаюсь кодом.
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПт Фев 01, 2013 07:51    Ответить с цитатой
Полезность: 1
yaffil пишет:
Random пишет:

То есть нет доступа к АРМ Администратор?


Только туды и есть, но там создаются объекты схемы, за которые надо платить Smile А если, например через Девелопер или SQL навигатор какой-нибудь создавать таблицы, то за них платить не надо.

З.Ы. все вроде нормально отрабатывает с такой структурой и довольно таки быстро.


Хе-хе! Создаём операцию OPER1
function CreateTable return boolean is begin
execute immediate 'create table aaa as select * from z#ac_fin';
return true;
end;

Создаём операцию OPER2:
--#if [].[OPER1].CreateTable
--#end if

select a(a.[id]) in aaa%rowtype where 1=1;

Только не забудьте про флаг "Расширенный синтаксис".
vtar
Эксперт


Вступление в Клуб: 20.03.2009
СообщениеПт Фев 01, 2013 08:51    Ответить с цитатой
Полезность: Нет оценки
Следующим ходом злобной империи ЦФТ станет тарифный план "расширенный" - 100 у.е. за галку
Smile
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Фев 01, 2013 10:19    Ответить с цитатой
Полезность: Нет оценки
Random пишет:


Хе-хе! Создаём операцию OPER1
function CreateTable return boolean is begin
execute immediate 'create table aaa as select * from z#ac_fin';
return true;
end;

Создаём операцию OPER2:
--#if [].[OPER1].CreateTable
--#end if

select a(a.[id]) in aaa%rowtype where 1=1;

Только не забудьте про флаг "Расширенный синтаксис".


Ну, это уже мазахизмом попахивает немного Smile Создавать операции, которые будут создавать таблицы, да ещё на базе аутсортинговой системы находящейся в Новсибирске. Laughing
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеВт Фев 05, 2013 09:55    Ответить с цитатой
Полезность: Нет оценки
yaffil пишет:
Ну, это уже мазахизмом попахивает немного Smile Создавать операции, которые будут создавать таблицы, да ещё на базе аутсортинговой системы находящейся в Новсибирске. Laughing


Не, это попахивает гениальностью Smile
Такие таблицы создаются в момент компиляции операции, значит, к моменту установки pl/sql-пакета на схему, будут созданы, ошибок нет.
Создаются под владельцем схемы, а не под пользователем, который их запустит.
Нет никаких инструкций, всё работает само.
Нет влияний человеческого фактора, типа, вдруг пользователь забудет запустить операцию конвертации.

Потом, то же самое можно применить к пакетам, текст которых можно хранить в справочнике. И всё - работай себе с pl/sql-ными пакетами, таблицами, и не грей голову над загромождением модели данных
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3
Страница 3 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru