Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle12c_r2_ora-01858_ora-01722_conversion_functions

Ab Oracle 12c R2 - Endlich mit ORA-01858 und ORA-01722 umgehen können - Fehler bei der Konvertierungs pro-aktiv behandeln und Datenformat vorher validieren erkennen

ab Oracle 12c R2 !

Problem:

Wer kennt nicht das Problem, dass bei einem ETL Load eine von xxxxx tausend Zeilen einen Fehler aufweist und der ganze Import mit einem „ORA-01722: invalid number“ oder einem „ORA-01843: not a valid month“ fehlschlägt.

Wie kann nun aber der fehlerhafte Datensatz gefunden werden?

Lösung

Ab der Version 12c R2 der DB steht uns dazu die VALIDATE_CONVERSION Function zur Verfügung und Erweiterte Parameter bei den to_xxxx Funktionen, die eine Fehlerhandling ermöglichen.


Test Case

Test Daten:

CREATE TABLE convtest ( id NUMBER, wert1 varchar2(20));
 
INSERT INTO convtest (id,wert1) VALUES ( 1,'78609');
INSERT INTO convtest (id,wert1) VALUES ( 2,'786,67');
INSERT INTO convtest (id,wert1) VALUES ( 3,'12.12.2017');
INSERT INTO convtest (id,wert1) VALUES ( 4,'01.30.2018');
 
commit;

Alle Zeilen mit Zahlen mit der VALIDATE_CONVERSION Funktion erkennen:

SELECT id FROM convtest WHERE VALIDATE_CONVERSION(wert1 AS NUMBER) = 1;
 
 ID
---
  1
 
-- With format mask
SELECT id FROM convtest WHERE VALIDATE_CONVERSION(wert1 AS NUMBER,('999D99'),'NLS_NUMERIC_CHARACTERS = '',.''') = 1;
 
   ID
-----
    2
 
-- read Date
 
SELECT id FROM convtest WHERE VALIDATE_CONVERSION(wert1 AS DATE,('dd.mm.yyyy')) = 1;
 
   ID
-----
    3  
 

Problem PL/SQL: ORA-43918: This Argument Must Be A Literal

In einer 12.2 R2 Umgebung habe ich allerdings folgendes Problem : PL/SQL: ORA-43918: This Argument Must Be A Literal (Doc ID 2463944.1)

Demnächst mehr


Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
prog/oracle12c_r2_ora-01858_ora-01722_conversion_functions.txt · Zuletzt geändert: 2019/09/03 09:43 von Gunther Pippèrr