2017-11-24 4 views
0

SQL Plus에서이 함수를 어떻게 테스트 할 수 있습니까?SQL Plus의 테스트 기능

CREATE OR REPLACE FUNCTION validid(
    p_deptid IN dept.deptno%TYPE 
) 
RETURN BOOLEAN IS 
    v_dummy PLS_INTEGER; 
BEGIN 
    SELECT 1 
    INTO v_dummy 
    FROM dept 
    WHERE deptno = p_deptid; 

    RETURN TRUE; 

    EXCEPTION 
     WHEN NO_DATA_FOUND THEN 
      RETURN FALSE; 
END validid; 
/

답변

0

이 함수는 부울을 반환하기 때문에 SQL에서 호출하여 테스트 할 수 없습니다. PL/SQL에서 호출해야합니다. 아래에서는 함수를 호출하고 화면에 무엇인가를 출력하는 작은 익명 블록을 보여줍니다. 결과를 보려면 먼저 set serveroutput on 명령을 실행해야 할 수 있습니다. SQL 또는 PL/SQL이 아닌 SQL * Plus 명령이므로 세미콜론이나 슬래시로 끝내지 않아도됩니다.

물론 함수가 올바르게 컴파일되었다고 가정합니다. 즉, 스키마의 DEPT 테이블에 DEPTNO 컬럼이 있는지 확인하십시오. 그렇지 않으면 컴파일 오류가 발생합니다.

set serveroutput on 

begin 
    if validid(20) 
    then dbms_output.put_line('20 is valid'); 
    else dbms_output.put_line('20 is invalid'); 
    end if; 
end; 
/

PL/SQL procedure successfully completed. 

20 is valid