PL/SQL에 익숙하지 않아 관련 ID 값을 입력하면 (즉, 한 필드를 입력하고 같은 레코드와 연결된 다른 필드를 반환 할 때) 문자열 값을 반환하는 간단한 함수를 작성하려고합니다. 예를 들어, 주소와 관련 ID가있는 테이블에서 함수에 '100'(따옴표 제외)을 전달하면 '350 Pearl St'이 반환됩니다.Oracle PL/SQL : 동일한 레코드에 대한 ID 필드를 기반으로 문자열 값을 반환하는 방법은 무엇입니까?
지금까지 내가 가진 :이 목록을 반환
CREATE OR REPLACE FUNCTION get_term
(MAJOR_ID_IN IN NUMBER)
RETURN VARCHAR2
IS
BEGIN
SELECT t.TERM_NAME
FROM CV_RELATION r, CV_TERMS t
WHERE t.TERM_ID = r.MAJOR_ID_IN; --Primary Key linked to Foreign Key
END get_term;
; 그러나 문자열 이름을 사용하여 다른 함수에서 성공 메시지를 반환 할 수 있으므로 다소 신빙성이 떨어진 ID를 반환하는 대신 (예 : '주소 350을 성공적으로 업데이트했습니다.'대 'Pearl St'대 'You 've successfully updated 주소 100 '). 다른 테이블의 외래 키에서 ID를 호출한다는 점에 유의하십시오.
감사합니다. 나는 단순함과 부적절 함을 위해 그 시간에 예외 (NO_DATA_FOUND와 TOO_MANY_ROWS)를 추가하지 않았지만 나는 그들을 잡을 것이다. 올바른 것으로 표시되었습니다. – snl330
+1 반환 변수의 데이터 유형을 고정합니다. (반환 데이터 유형이'varchar2'로 선언되었지만 변수가 고정 데이터 유형으로되어 있기 때문에 잠재적으로 문제가 발생할 수 있습니까?이 경우 앵커 유형 **이 **'varchar2'이므로 중요하지 않습니다.) +1은 또한 잠재적 인 예외를 논의하기위한 것입니다. 잘 하셨어요! – mathguy
@mathguy 고정 유형은 cv_terms 테이블의 정의로 인해 항상 varchar2가됩니다. 듀크, +1 하겠지만 아직 할 수는 없어요. :) 다시 한번 감사드립니다. – snl330