Se necessario per capire che dll abbiamo passato o in generale per capire se dll è 64 bit o 32 bit basta copiarsela sulla propria macchina, lanciare cmd di Visual Studio e fare:
DUMPBIN /headers Oracle.DataAccess.dll
se è 32 bit riceviamo una cosa del genere:
FILE HEADER VALUES
14C machine (x86)
....
se è 64 bit riceviamo una cosa del genere:
FILE HEADER VALUES
8664 machine (x64)
....
lunedì 16 settembre 2013
Ricavare dettaglio Errore in Oracle
Il software vi da un errore Oracle e non potete andare in
debug (o non volete perchè ci vuole troppo), ecco una utile soluzione.
Tacciare gli errori oracle mediante un trigger che si attiva
al servererror
create
table track_detail (val varchar2(4000));
create or
replace procedure track (p_text IN VARCHAR2) IS
PRAGMA
AUTONOMOUS_TRANSACTION;
begin
insert into track_detail(val)
values (p_text);
commit;
end;
create or
replace TRIGGER log_err after servererror on schema
DECLARE
v_temp VARCHAR2(2000) := substr(dbms_utility.format_error_stack,1,2000);
v_num NUMBER;
v_sql_text ora_name_list_t;
begin
v_temp := translate(v_temp,'''','"');
track(v_temp);
v_num := ora_sql_txt(v_sql_text);
v_temp := null;
BEGIN
FOR i IN 1..v_num LOOP
v_temp := v_temp || v_sql_text(i);
END LOOP;
EXCEPTION
WHEN VALUE_ERROR THEN NULL;
END;
v_temp := translate(v_temp,''''||chr(0)||chr(10),'"');
track(v_temp);
end;
dopo una bella
select *
from track_detail
vi fornirà errore e select che l'applicativo vuole
richiamare e la potete lanciare da un query browser o altro ide.
Attenzione: Eliminare dopo l'uso il trigger e la tabella
drop trigger LOG_ERR;
drop table TRACK_DETAIL;
Iscriviti a:
Post (Atom)