2013-12-17 8 views
1

className 변수를 생성하고 값을 할당했습니다. 전자 메일을 보내는 oracle의 또 다른 절차가 있습니다. 이메일 헤더와 본문에 어떻게이 값을 전달합니까?내 저장 프로 시저에 변수 값을 전달하는 방법

VARIABLE className varchar2(30) 
    :classname := 0; 
    BEGIN 
    FOR i IN 
    (
     SELECT CLASS_INSTANCE_COUNT , CLASS_NAME 
     FROM MODEL_CLASS_COUNTS 
     WHERE TRUNC(COUNT_DATETIME) = TRUNC(SYSDATE) 
    ) 
     LOOP  
      IF i.CLASS_INSTANCE_COUNT = 0 
      THEN 
       :className := i.CLASS_NAME; 
       EMAIL('[email protected]', 'email header: &className is 0', 'body: count for &className is 0'); 
      END IF; 
     END LOOP; 
    END; 
    /
+0

나는 당신이 원하는 것을 이해하고 있습니다. 당신은 SQL * Plus 변수': classname'과 SQL * Plus 치환 변수'& className'를 가지고 있습니다. 익명의 PL/SQL 블록에서 로컬 PL/SQL 변수를 사용하는 것보다 로컬 변수를 사용하는 이유가 있습니까? SQL * Plus에서 사용자에게 값을 묻도록 하시겠습니까? (대체 변수가 필요한 경우)? 아니면 단순히 루프에서 값을 얻고 싶습니까? –

답변

1

내 생각에 SQL * Plus 변수 또는 대체 변수가 필요하지 않습니다. 나는 당신이 원하는 것 같아요.

BEGIN 
FOR i IN 
    (
     SELECT CLASS_INSTANCE_COUNT , CLASS_NAME 
     FROM MODEL_CLASS_COUNTS 
     WHERE TRUNC(COUNT_DATETIME) = TRUNC(SYSDATE) 
    ) 
LOOP  
    IF i.CLASS_INSTANCE_COUNT = 0 
    THEN 
    EMAIL('[email protected]', 
      'email header: ' || i.class_name || ' is 0', 
      'body: count for ' || i.class_name || ' is 0'); 
    END IF; 
END LOOP; 
END; 
+0

예. 나는 방금 걸어서 돌아 왔고 내가 할 수 있다는 것을 깨달았다. :) 이것이 내가 필요한 것입니다. @ Justin cave 고마워요. – Angelina

관련 문제