Почему в документации по DB2 так мало согласованности в сети?
Я пытаюсь создать SP, который возвращает 4 значения, он начинался как забавный SQL-оператор с «JOIN's» и «UNIONS» и т. Д., Но в конечном итоге оказался очень неэффективным SP. не скомпилируется ..!
Код следующий:
CREATE PROCEDURE Lex.LV_LogIn (
-- Optional: input and output parameters
-- { parameter-name } [IN | OUT | IN OUT] { data-type },
IN LogIn VARCHAR(45),
OUT RoleType BIGINT,
OUT RoleDescription VARCHAR(45),
OUT EmpName VARCHAR(45),
OUT Granted BOOL
)
LANGUAGE SQL
BEGIN
DECLARE empid BIGINT DEFAULT 0;
DECLARE usrid BIGINT DEFAULT 0;
SET RoleType = 0;
SET RoleDescription = '';
SET Granted = FALSE;
SELECT "idCustEmployees", "idCustUserIds" INTO empid, usrid FROM LEX.CUSTUSERIDS WHERE "SourceType" = 'LexView' AND "LogIn" = LogIn;
SELECT "idRoles" INTO RoleType FROM LEX.IDS2ROLES WHERE "idCustUserIds" = usrid;
CASE
WHEN RoleType > 0 THEN
Granted = TRUE;
SELECT "Description" INTO RoleDescription FROM LEX.ROLES WHERE "idRoles" = RoleType;
SELECT "FullName_C" INTO EmpName FROM LEX.CUSTEMPLOYEES WHERE "idCustEmployees" = empid;
ELSE
LEAVE;
END CASE
END @
GRANT EXECUTE ON PROCEDURE TO USER xxxxxxxxxx;
У меня была ошибка за ошибкой, поэтому я разбил ее на эту сумасшедшую простую вещь, прежде чем я попробовал CASE, я попытался IF (...), IF (...) THEN и IF .. . ТО ...
Все приводит к одной и той же ошибке: ->
вместо "CASE ......" ожидалось "psm_pipe" ......
Вопрос 1: Что я сделал не так в SP?
Вопрос 2: Что такое psm_pipe и почему он не появляется, если вы используете db2 "psm_pipe" в google? *
Есть идеи, ребята?
Спасибо,
Боб Б.