Wie zu verwenden to_number und nullif in sql-loader?
Ich habe ein ähnliches problem mit Daten (Kombination von to_date und nullif) hier : Wie verwenden Sie decode in sql-loader?
Und es war gelöst, schön.
Mein problem ist, dass Sie ein numerisches Feld in der CSV-Datei können die folgenden Formate : 999.999.999 ein.99 oder einfach nur ein Punkt '.' für null-Werte.
Dies ist arbeiten :
MINQUANTITY "TO_NUMBER(:MINQUANTITY, '9999999999D999999', 'NLS_NUMERIC_CHARACTERS='',.''')"
oder
MINQUANTITY NULLIF MINQUANTITY = '.'
Aber es ist nicht arbeiten, wenn ich versuche, beide miteinander zu kombinieren :
MINQUANTITY "TO_NUMBER(:MINQUANTITY, '9999999999D999999', 'NLS_NUMERIC_CHARACTERS='',.''') NULLIF :MINQUANTITY= '.'"
Hier ist der error log :
Record 1: Rejected - Error on table MY_TABLE, column MINQUANTITY.
ORA-00917: missing comma
Wie kann ich diese kombinieren ?
InformationsquelleAutor kmas | 2013-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
NULLIF
Zustand sollte nicht innerhalb der doppelten Anführungszeichen für die SQL-Zeichenfolge; und es muss zuerst kommen. Von die Dokumentation:So sollte es sein:
(Sie teilen sich in zwei Linien für eine bessere Lesbarkeit, beide Teile noch für die `MINQUANTITY Feld).
Im Protokoll wird berichtet:
(Haben Sie Ihr NLS-chars der richtigen Richtung? Dies ist die Behandlung von
,
als Dezimaltrennzeichen, während Ihre Frage suggeriert, die Sie verwenden.
. Entweder wird funktionieren, solange der Wert ist eingeschlossen in doppelte Anführungszeichen, natürlich).InformationsquelleAutor Alex Poole