Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / вызов хранимой процедуры из другой ХП (Teradata) / 12 сообщений из 12, страница 1 из 1
22.05.2012, 11:17
    #37805347
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Скажите пожалуйста, как создать процедуру, которая будет просто вызывать другие уже созданные процедуры в Teradata?
...
Рейтинг: 0 / 0
22.05.2012, 23:49
    #37806902
Павел Новокшонов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Вызываешь другие ХП оператором CALL. Посмотри синтаксис в мануале SQL Data Manipulation Language.
...
Рейтинг: 0 / 0
23.05.2012, 06:21
    #37807008
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Писал так:
replace procedure call_all_SP ()
begin
call created_clmn_SP ('PROD911', 'PROD801');
end;


call call_all_SP();

Процедура создается, но при вызове не выдает не одного результата. При то что, если вызывать отдельно call created_clmn_SP ('PROD911', 'PROD801'); то результатом являются несколько строк.
...
Рейтинг: 0 / 0
24.05.2012, 08:35
    #37808932
Павел Новокшонов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Как вариант просто положить вызовы отдельных процедур в bteq скрипт.
...
Рейтинг: 0 / 0
24.05.2012, 08:39
    #37808941
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
это то да, можно. Но нужно именно процедуру:)
...
Рейтинг: 0 / 0
24.05.2012, 19:57
    #37810499
illeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Вроде все правильно.
А оно запускается? Может ошибку какую-то выдает? И показывает ли
show procedure call_all_SP
нужный код ?
...
Рейтинг: 0 / 0
25.05.2012, 06:24
    #37810824
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Нет, ошибки не выдает.
Я думаю, что проблема в том, что должен вернуться динамический набор. И надо сделать что-нибудь типо allocate Cr_Clmn_Cursor cursor for procedure created_clmn_SP. Но так тоже не работает..а в документации описание allocate очень краткое и всего один пример на него.
...
Рейтинг: 0 / 0
25.05.2012, 13:49
    #37811551
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
подскажите, можно ли в Teradata вернуть резалт сет процедуры во временную таблицу (GT или Volatile) и как?? Т.е чтобы при запуске процедуры заполнялась временная таблица.
...
Рейтинг: 0 / 0
25.05.2012, 21:38
    #37812535
illeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
А, я вас понял. Вы можете во вложенных процедурах created_clmn_SP, указать в курсоре, который возвращает данные with return to client , тогда резалт сет отправится на клиент с которого его вызвали, а не в процедуру, которая его вызывает.

Например:



replace procedure call_all_SP ()
begin
call created_clmn_SP1 ('a',1);
call created_clmn_SP1 ('b',1);
call created_clmn_SP1 ('c',2);
end;


replace procedure created_clmn_SP1 (in a char(1), in b integer)
DYNAMIC RESULT SETS 2
begin
DECLARE C1 CURSOR WITH RETURN TO CLIENT FOR
SEL :a as p_a
;
DECLARE C2 CURSOR WITH RETURN TO CLIENT FOR
SEL :b as p_b
;

OPEN C1;
OPEN C2;
end;



call procedure call_all_SP ();
...
Рейтинг: 0 / 0
28.05.2012, 15:22
    #37814576
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Да! Вы правильно поняли! попробовал, работает.
Огромное спасибо!!!
...
Рейтинг: 0 / 0
08.06.2012, 09:51
    #37830505
Andrey Eliseev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Такая странность, при выполнении процедуры, которая в свою очередь вызовет несколько других процедур может получиться так, что результат некоторых процедур выдастся неправильный. Но если вызвать процедуру отдельно-то все верно.
Если поменять порядок вызова процедур то результаты возвращаются верными. От чего это зависит? Потому что порядок я выбирал рандомно до тех пор, пока результат не покажется верным.....
...
Рейтинг: 0 / 0
25.06.2012, 18:07
    #37853741
AlcazaM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из другой ХП (Teradata)
Заходите на форум http://adsk.jobinhost.com
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / вызов хранимой процедуры из другой ХП (Teradata) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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