Ist es möglich für Oracle sqlldr zu akzeptieren, einen TNS-Eintrag als eine Instanz qualifier in Oracle 10 und 11?

Ist es möglich, verwenden Sie einen vollständig qualifizierten TNS-Eintrag mit sqlldr gebündelt mit Oracle 10/11?

Beispielsweise in SQLPlus:

    sqlplus user/password@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl))) @script.sql

Aber mit sqlldr (SQL-Loader) scheint es Probleme mit den TNS-Eintrag direkt. Speziell:

    sqlldr user/password@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl))) bad='bad_file.txt' control='control.ctl' data='data.txt' log='log.txt' direct='true'

Hier ist die Fehlermeldung produziert:

    LRM-00116: syntax error at 'address' following '('

    SQL*Loader: Release 11.2.0.1.0 - Production on Tue Sep 13 15:41:54 2011

    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

    SQL*Loader-100: Syntax error on command-line

Versuch zu Kapseln, die TNS-Eintrag in Anführungszeichen, erzeugt den gleichen Fehler.

Hatte einen Blick auf die sqlldr Dokumentation, und versucht, verwenden Sie die 'userid' command-line-argument ohne Erfolg. Speziell:

sqlldr userid='user/password@(description=(address=(host=localhost)(protocol=tcp)(port=1521))(connect_data=(sid=orcl)))' bad='bad.txt' control='control.ctl' data='data.txt' log='log.txt' direct='true'
LRM-00116: syntax error at 'password@(' following '='

SQL*Loader: Release 11.2.0.1.0 - Production on Tue Sep 13 15:44:17 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-100: Syntax error on command-line

Macht es Sinn, dass Oracle würde hoffen, zwingen den Benutzer zu einer lokalen Instanz zu mildern-I/O-in pushen von Daten auf einem remote-host. Aber die Abweichung in der unterstützten syntax ist nicht so intuitiv. Jemand anderes ähnliche Probleme erleben?

InformationsquelleAutor thetwan | 2011-09-13
Schreibe einen Kommentar