Вернуться

Листниг 6. Возврат кода и сообщения для текущей ошибки



Эта процедура возвращает код и сообщение для текущей ошибки,
создана с целью  компенсации неудобного формата сообщений об ошибках Java.

/* getErrorInfo.sp */
CREATE OR REPLACE PROCEDURE getErrorInfo (
	errcode OUT INTEGER, 
	errtext OUT VARCHAR2)
IS
	c_keyword CONSTANT CHAR(23) := 'java.sql.SQLException: ';
	c_keyword_len CONSTANT PLS_INTEGER := 23;
	v_keyword_loc PLS_INTEGER;
	v_msg VARCHAR2(1000) := SQLERRM;
BEGIN
	v_keyword_loc := INSTR (v_msg, c_keyword);
	IF v_keyword_loc = 0
	THEN
		errcode := SQLCODE;
		errtext := SQLERRM;
	ELSE
		errtext := SUBSTR (v_msg, v_keyword_loc + c_keyword_len);
		errcode := SUBSTR (errtext, 4, 6 /* ORA-NNNNN */);
	END IF;
END;
/



Вернуться