Ändern externe Tabelle DEFEKTEDATEI, LOGFILE und DISCARDFILE Parameter nur
Ich habe mehrere externe Tabellen verwendet, um die Datei Lesen Daten in die DB jeweils für einen bestimmten Datei-Spezifikation.
Für Dateien in einem einzigen format einer Tabelle wird verwendet, indem es auf eine neue default-Verzeichnis und den neuen Dateinamen. Dies ist in Ordnung, außer, dass ich jetzt dynamisch ändern müssen die DEFEKTEDATEI, LOGFILE und DISCARDFILE Parameter während der rest der access-Parameter unverändert.
Gibt es einen direkten Weg, dies zu tun, ohne neu einzugeben alle anderen access-Parameter (Spalte Transformationen eingereicht Trennzeichen etc.) wie auch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider ändern nur die DEFEKTEDATEI, LOGFILE und DISCARDFILE Parameter konnte nicht erreicht werden, ohne neu einzugeben den anderen access-Parameter zu.
Für was es Wert ist und wer findet diese Frage in der Zukunft habe ich schließlich gearbeitet, um das problem mit den folgenden:
Wählen Sie die externe Tabelle, und verwenden Sie REGEXP_REPLACE auf seinen Zugriff auf Parameter, um die Teile zu ersetzen, der den Zugriff auf den parameter BLOB, der auf DEFEKTEDATEI, LOGFILE und DISCARDFILE und Ihre Werte mit den neuen Werten, die ich geliefert.
Dann habe ich dynamisches SQL zu verändern, die die externe Tabelle und lieferte die neue access-Parameter.
Es ist nicht ideal, und ich habe bis zum Ende massenzukopieren, den Zugang Parameter, aber mit einer REGEX (und komplett testen der Ausgabe) meinte, der Prozess war nicht zu schmerzhaft oder langsam.
Können Sie ändern Sie die
ACCESS PARAMETERS
Klausel lässt den rest unverändert.hier sehen http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/tables013.htm#i1007591
Beachten Sie, dass soweit ich weiß, Wenn Sie ändern möchten nur die DEFEKTEDATEI, die Sie noch haben, zu wiederholen, was in den ACCESS-PARAMETER.
z.B.:
ACCESS PARAMETERS
- Klausel aus den Metadaten (en.wikipedia.org/wiki/Oracle_metadata). Sollte es scheinen, zu schwierig sein, empfehle ich einen neuen thread aufmachen, wie das zu tun. Nachdem Sie neu die ACCESS-PARAMETER-Klausel, ersetzen Sie die DEFEKTEDATEI UND DAS LOGFILE, dann führen Sie die ALTER TABLE-Anweisung.Ab Oracle 12cR2 Sie konnte überschreiben Sie die Parameter für den externen Tabellen in der Abfrage.
Beispiel: