DEBUG THE FOLLOWING FUNCTION CREATE OR REPLACE FUNCTION F_Function (v_Name VARCH
ID: 664081 • Letter: D
Question
DEBUG THE FOLLOWING FUNCTION
CREATE OR REPLACE FUNCTION F_Function (v_Name VARCHAR2, v_types VARCHAR2) RETURN VARCHAR2 IS
V_A_Name VARCHAR2(32);
BEGIN
IF Upper(v_type) = 'LAST' THEN
select (substr(v_name,(instr(v_name,' ',1)+1),Length(v_name)- instr(v_name,' ',1)))
into v_A_Name
from dual;
ELSIF Upper(v_Type) = 'FIRST' THEN
select (substr(v_name,1,(instr(v_name,' ',1)-1)))
into v_A_name
from dual;
ELSE
RETURN 'Error';
END IF;
Return v_As_Name;
END F_Function;
SELECT F_Function ('Mark McKinnon','LAST'), F_Function ('Mark McKinnon','MIDDLE'), F_Function ('Mark McKinnon','first')
FROM dual;
Explanation / Answer
Answer:
The code defined is Oracle SQL, User defined functions. While debugging this code we found the following errors.
CREATE OR REPLACE FUNCTION F_Function (v_Name VARCHAR2, v_types VARCHAR2) RETURN VARCHAR2 IS
V_A_Name VARCHAR2(32);
BEGIN
IF Upper(v_type) = 'LAST' THEN //Error at v_type, this variable replace with v_types
select (substr(v_name,(instr(v_name,' ',1)+1),Length(v_name)- instr(v_name,' ',1)))
into v_A_Name
from dual;
ELSIF Upper(v_Type) = 'FIRST' THEN //Error at v_Type to be replace with v_types
select (substr(v_name,1,(instr(v_name,' ',1)-1)))
into v_A_name
from dual;
ELSE
RETURN 'Error';
END IF;
Return v_As_Name; //Error at v_As_Name is replaced with existing variable V_A_Name
END F_Function; //Error at F_Function, no statement like this BEGIN ends with END only
SELECT F_Function ('Mark McKinnon','LAST'), F_Function ('Mark McKinnon','MIDDLE'), F_Function ('Mark McKinnon','first') FROM dual; //No error in this calling of user defined function
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.