Я пытаюсь создать хранимую процедуру, которая использует select для получения количества строк в двух таблицах, а затем распечатывает результат.Добавление двух счетчиков строк в хранимой процедуре в DB2 с параметрами
CREATE PROCEDURE TEST(IN tab1 varchar(20), IN tab2 varchar(20), out msg INTEGER)
LANGUAGE SQL
READS SQL DATA
BEGIN
DECLARE r1 CURSOR WITH RETURN FOR
SELECT COUNT(*) FROM tab1;
DECLARE r2 CURSOR WITH RETURN FOR
SELECT COUNT(*) FROM tab2;
OPEN r1;
OPEN r2;
---- somehow add the 2 together -----
CALL DBMS_OUTPUT.PUT('Zeilen = ');
CALL DBMS_OUTPUT.PUT_LINE(msg);
END @
Я обновил весь исходный код, добавляя курсоры, так как отборный (переменный) = что-то, кажется, не работает, как
SELECT tableOneCount = (SELECT COUNT(*) FROM tab1);
Но теперь проблема заключается в том, что создание процедуры я получаю ошибку что tab1 неизвестно, что очевидно, так как это переменная, и я не знаю, как добавить 2 курсора.
Любые идеи?
Заранее спасибо.
TheVagabond
'SELECT' не способ присвоить значения переменных, как вы пытаетесь сделать это, не в DB2 в любом случае. Кроме того, вы не можете использовать переменные в качестве имен объектов - google для «dynamic SQL». – mustaccio