Я пытаюсь вызвать хранимую процедуру из другой хранимой процедуры. Я пробовал использовать другой синтаксис, но без успеха.AS400 Вызовите хранимую процедуру из другой хранимой процедуры
Первая хранимая процедура возвращает таблицу. Для теста я просто хочу вернуться из второй хранимой процедуры, что я получил от первой.
Первая хранимая процедура (SP01):
BEGIN
DECLARE C2 CURSOR WITH RETURN FOR
SELECT DISTINCT TBL.*
FROM LIB.TABLE1 TBL;
OPEN C2 ;
END
Он отлично работает при вызове его из C#.
Вторая хранимая процедура (SP02):
BEGIN
DECLARE C2 CURSOR WITH RETURN FOR
CALL SP01();
OPEN C2 ;
END
Я получаю сообщение об ошибке:
Vendor Code: -104
Message: [SQL0104] Token SP01 was not valid. Valid tokens: ;. Cause ....
A syntax error was detected at token SP01.
Что такое правильный синтаксис/подход для SP02?
EDITED:
В доступе мс, я был в состоянии создать QUERY2 запроса на основе другого QUERY1 запроса:
SELECT * FROM QUERY1;
или даже присоединиться к нему, как стол
SELECT * FROM TABLE1 INNER JOIN QUERY1 ON (TABLE1.FIELD1 = QUERY1.FIELD1);
I необходимо переместить все мои таблицы и запросы из mdb в AS400 и написать приложение C#, которое использует эти запросы.
Я не вижу столько примеров в сети, может быть, мой подход неправильный. У меня есть несколько запросов для запуска, и каждый зависит от другого. Я подумал о вызове одной хранимой процедуры из своего приложения на C#, и этот вызов вызовет другой и т. Д. Правильно ли вы запускаете ряд запросов, которые зависят друг от друга?
Или есть способ вызвать из моего приложения C# все запросы независимо друг от друга и из кода, чтобы построить зависимость между ними, похоже, что этот подход неверен?
shoud'nt это будет '' Exec sp02''? –
база данных? MySQL? Oracle? MS SQLServer? – rdn87
@ rdn87 База данных AS400 – ehh