Ich verwende die Fehlerprotokolltabelle über dbms_errlog.create_error_log für DML-Operationsfehler in Bulk & die ORA_ERR_MESG $ zurück an den Client. Allerdings muss ich den Fehlercode ignorieren, so dass es benutzerfreundlich aussieht.Extrahieren Sie Teil der Zeichenfolge mit REGEXP_SUBSTR
Ex: ORA-01400: kann nicht NULL in einfügen ("ABC_OWNER" "ABC_PART" "REGION"..)
dies geändert werden muss, um "Kann nicht NULL in REGION einfügen"
I habe versucht, REGEXP_SUBSTR nach "ORA-" Muster & Suche einige Extraktion, aber ich habe nur in gewissem Umfang gelungen. Können Sie bitte beraten, wie dies zu tun ist.
Grüße.
Was haben Sie versucht?Außerdem: Sie haben nicht nur den Fehlercode entfernt, Sie haben auch die Nachricht geändert: Sie zeigen nur, in welche Spalte Sie NULL nicht einfügen können, nicht das Schema und die Tabelle. Wird dir das helfen oder sich in Zukunft als schlechte Idee erweisen? – mathguy
Im tatsächlichen Anwendungsfall muss ich das Schema oder die Tabelle nicht anzeigen, da der Benutzer Daten in die Tabelle hochlädt und bereits darüber informiert ist. Der Benutzer muss nur wissen, ob beim Hochladen ein Fehler aufgetreten ist. In meiner Implementierung füge ich Benutzer heraufgeladene Daten in tatsächliche Tabelle zusammen und protokolliere irgendeinen Fehler in der Fehlerprotokolltabelle und gebe diese Fehler zurück, wenn überhaupt. Ich möchte es einfach und lesbar halten, ohne Fehlercodes, Schemennamen etc. Danke – ppatkar