powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / вызов хранимой процедуры из другой ХП (Teradata)
12 сообщений из 12, страница 1 из 1
вызов хранимой процедуры из другой ХП (Teradata)
    #37805347
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите пожалуйста, как создать процедуру, которая будет просто вызывать другие уже созданные процедуры в Teradata?
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37806902
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызываешь другие ХП оператором CALL. Посмотри синтаксис в мануале SQL Data Manipulation Language.
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37807008
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Писал так:
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
вызов хранимой процедуры из другой ХП (Teradata)
    #37808932
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант просто положить вызовы отдельных процедур в bteq скрипт.
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37808941
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это то да, можно. Но нужно именно процедуру:)
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37810499
illeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде все правильно.
А оно запускается? Может ошибку какую-то выдает? И показывает ли
show procedure call_all_SP
нужный код ?
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37810824
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, ошибки не выдает.
Я думаю, что проблема в том, что должен вернуться динамический набор. И надо сделать что-нибудь типо allocate Cr_Clmn_Cursor cursor for procedure created_clmn_SP. Но так тоже не работает..а в документации описание allocate очень краткое и всего один пример на него.
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37811551
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите, можно ли в Teradata вернуть резалт сет процедуры во временную таблицу (GT или Volatile) и как?? Т.е чтобы при запуске процедуры заполнялась временная таблица.
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37812535
illeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, я вас понял. Вы можете во вложенных процедурах 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
вызов хранимой процедуры из другой ХП (Teradata)
    #37814576
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да! Вы правильно поняли! попробовал, работает.
Огромное спасибо!!!
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37830505
Andrey Eliseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая странность, при выполнении процедуры, которая в свою очередь вызовет несколько других процедур может получиться так, что результат некоторых процедур выдастся неправильный. Но если вызвать процедуру отдельно-то все верно.
Если поменять порядок вызова процедур то результаты возвращаются верными. От чего это зависит? Потому что порядок я выбирал рандомно до тех пор, пока результат не покажется верным.....
...
Рейтинг: 0 / 0
вызов хранимой процедуры из другой ХП (Teradata)
    #37853741
AlcazaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заходите на форум http://adsk.jobinhost.com
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / вызов хранимой процедуры из другой ХП (Teradata)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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