Проблема, с которой я столкнулся, заключается в том, что я должен вызвать одну хранимую процедуру из другой хранимой процедуры в базе данных DB2. Добрый пример, который я даю ниже.Вызов одной хранимой процедуры в другую хранимую процедуру в DB2
У меня есть одна хранимая процедура:
CREATE OR REPLACE PROCEDURE Proc1()
IS
Declare myName in varchar;
BEGIN
Select fname into myName from student where fname='x'; // is returning unique value
-- here call anoher proc2
END;
Теперь так эта процедура proc1 собирается вызвать эту процедуру proc2.
Теперь я второй хранимая процедура:
CREATE OR REPLACE PROCEDURE Proc2(Name in varchar)
IS
BEGIN
-- do anything
END;
Вы должны иметь возможность использовать 'call Proc2 (myName)', не прибегая к динамическому SQL, как описано в вашем собственном ответе. Вы не можете это сделать? Какая у вас ошибка? –
, когда я это делаю, вызываю 'Proc2 (myName)' он не дает proc, найденного с такими аргументами. Я почти пробовал все варианты, которые я могу думать, но не удалось. – JBaba
Вы должны определенно проверить, в какой схеме были созданы ваши процедуры, и что такое 'CURRENT PATH' для каждой процедуры (т. Е. Когда вы создаете' PROC2', убедитесь, что 'CURRENT PATH' содержит схему, в которой существует эта процедура. , полностью квалифицируйте процедуру, то есть 'call schema.proc2 (myName)' –