Cómo obtiene Oracle información de excepción
A través del siguiente código:
public static String getExceptionAllinformation(Exception ex){
String sOut = "";
StackTraceElement[ ] trace = ex.getStackTrace();
for (StackTraceElement s : trace) {
sOut += "\tat " + s + "\r\n"; p >
}
return sOut; }
Extensión: .
Nota
procedimiento almacenado de Oracle, puede obtenerlo a través de sqlcode Código de excepción, obtenga información de excepción a través de sqlerrm.
Ejemplo:
Crear o reemplazar el procedimiento almacenado write2blob(p_id en número, --id
p_blob_data en blob,
p_msg ? out varchar2) --data
es
v_lobloc blob; --target blob
v_blob_data blob --ield para aceptar parámetros, las variables de parámetros no pueden. t ser utilizado para asignación directa
v_amount binario_integer; --longitud total
v_amount en número, --id
p_blob_data en blob,
p_msg ?--Longitud total
v_sub_length binario entero; --La longitud máxima de una lectura, no más de 32766
v_sub_blob ?
v_offset binario entero; -- Cursor
v_err_msg varchar2(1000); ?
v_id binario_integer -- ID del registro que se va a modificar o agregar
v_temp ? binario_integer; variable temporal, utilizada para determinar si el registro correspondiente a v_id ha comenzado
v_amount := length(p_blob_data);
v_blob_data ? := p_blob_data;
v_sub_length := 32767;
v_offset := 1;
v_id := p_id;
v_temp : = 0 ?--Ejecutar v_query_string en v_lobloc inmediatamente;
Seleccione count(1) en v_temp desde donde id = v_id ?--Consulte si hay un registro correspondiente a v_id y asigne el valor; v_te /*Nota: ya sea que esté modificando o agregando nuevos registros, debe usar vacío_blob() para inicializar el campo del blob; de lo contrario, el contenido del blob posterior no se escribirá en la tabla.