CASE 문 (함수에서 반환 된 값)의 표현식을 평가하고 조건 중 하나를 충족시키지 않으면 표현식 값 자체를 반환하고 싶습니다. 예를 들어Oracle CASE 문 - 표현식 값을 반환 하시겠습니까?
:
CASE UPDATE_RECORDS_F(party_number)
WHEN 'ONE_RECORD_UPDATED' THEN RETURN 'OK';
WHEN 'MULTIPLE_RECORDS_UPDATED' THEN RETURN 'OK_MULTIPLE';
ELSE RETURN (expression value);
END CASE;
'다른 사람'의 경우는 예외가 발생하는 경우에 필요합니다. 반환 된 함수 값을 문자열에 할당하고 평가할 수는 있지만 오류 메시지의 길이를 알 수는 없습니다. 오히려 초과 될 수있는 길이를 설정하여 변수를 작성하는 대신 문자열 값을 즉시 처리합니다.
이 방법이 있습니까?
질문에 대한 답변이 포함되어 있습니다. PL/SQL에서 값을 보존하는 방법은이를 변수에 할당하는 것입니다. 반환 값의 길이에 대해 걱정한다고 말하면됩니다. 그러나 당신은 당신 자신의 기능에서 그것을 돌려 주려고합니다. 함수의 반환 유형은 무엇입니까? VARCHAR2이면 로컬 변수에 VARCHAR2 (32767)의 최대 길이를 사용하십시오. –
당신이 작성한 코드는 다음과 같이 단순화 될 수 있습니다 :'RETURN CASE UPDATE_RECORDS (...) WHEN ... THEN ... ..... END;'(경고 :이 경우에는'END ', 이제는 CASE 표현식을 사용하고 있기 때문에 'END CASE'가 아닙니다.). 3 대신에 하나의'RETURN' 문을 갖는 것이 더 좋습니다. – mathguy