I have create a PL/SQL stored procedure from which I want to return output and display it.
I want to return the output either the success or failure message into variable : MSG
How do I need to do this any idea
PL/SQL code:
CREATE OR REPLACE PROCEDURE CHECKFILED
(
MY_NAME EMP.FIRSTNAME%TYPE,
MY_ID EMP.ID%TYPE
) RETURN VARCHAR2
IS
V_MSG VARCHAR(4000 CHAR);
BEGIN
SELECT FIRSTNAME INTO MY_NAME FROM EMP WHERE ID=MY_ID;
IF MY_NAME IS NOT NULL THEN
INSERT INTO CUSTOMER VALUES (UID,FIRSTNAME);
V_MSG='FIELD IS NOT EMPTY';
ELSE
RAISE_APPLICATION_ERROR(-20000,'FIELD IS EMPTY');
END IF;
EXCEPTION
WHEN OTHERS THEN
V_MSG := SQLCODE || '-' || SQLERRM;
RETURN(V_MSG);
RETURN(V_MSG);
END;
Calling the stored procedure:
DECLARE
MSG VARCHAR2(4000 CHAR);
BEGIN
SELECT CHECKFILED('10A') AS MSG FROM DUAL;
END;
SQLCODE || '-' || SQLERRMis redundant becausesqlerrmalready containssqlcode. For example, if sqlerrm is ORA-12345 Some error message here, then sqlcode is-12345and you'll return -12345-ORA-12345 Some error message here. Why do that?