선택 쿼리에서 프로 시저를 만들어떻게 나에게 확인 된 사용자 ID로 각 사용자의 액세스를 제공하는 쿼리가
SELECT A.ACTIONID,A.ACTIONNAME,A.ALLOWWRITE,A.ALLOWREAD
FROM THP.TBACTION A
WHERE A.ACTIONID IN (SELECT AP.ACTIONID
FROM THP.TBACTION_PROFILE AP
WHERE AP.PROFID IN(SELECT P.PROFID
FROM THP.TBPROFILE P
WHERE P.PROFID IN(SELECT U.PROFID
FROM THP.TBUSER U
WHERE U.USERID='1')));
을 나는이 쿼리에 대한 절차를 만들고 싶어 그리고 ROW에 그 결과를 저장하고 내가이 절차가 아니라 적절한 결과 사용
ESQL
에서 IBM 메시지 브로커와 같은 소프트웨어에서이 프로 시저를 호출 :create or replace
PROCEDURE SELECT_ACTION (
P_USERID IN NUMBER,
RESULT OUT NUMBER)IS
CNT NUMBER;
BEGIN
RESULT := 1;
CNT := 0;
SELECT COUNT(1) INTO CNT FROM THP.TBUSER WHERE USERID = P_USERID ;--AND SERIALTOKEN= P_SERIALTOKEN;
IF CNT = 1 THEN
BEGIN
SELECT A.ACTIONID,A.ACTIONNAME,A.ALLOWWRITE,A.ALLOWREAD
FROM THP.TBACTION A
WHERE A.ACTIONID IN (SELECT AP.ACTIONID
FROM THP.TBACTION_PROFILE AP
WHERE AP.PROFID IN(SELECT P.PROFID
FROM THP.TBPROFILE P
WHERE P.PROFID IN(SELECT U.PROFID
FROM THP.TBUSER U
WHERE U.USERID=P_USERID)));
COMMIT;
RESULT :=0; -- ROW was Found
END;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RESULT := 3;
WHEN OTHERS THEN
RESULT := 4;
END SELECT_ACTION;
을
저를 도와주세요.