0

サーバーに基づく Oracle データベースがあり、サーバー上のテーブルにデータをインポートしたいと考えています。sqlloadr(sqlldr) を使用して、localhost にある Oracle データベースにすべてのデータを挿入しようとしていますが、この場合は問題ありませんが、Web サーバー (localhost ではない) に接続しようとすると問題が発生します。

localhost の場合に使用したコマンド:

sqlldr <usrname>/<password> control=table.ctl log=table.log ERRORS=25000

以下はWebサーバーに関するものです

sqlldr <usrname>/<password>@LABSERVER control=table.ctl log=table.log ERRORS=25000

ここで、次のように tnsnames.ora を作成しました。

LABSERVER =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(Host = <hostaddress>)(Port = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = <servicename>)
    )
  )

しかし、私はこのエラーが発生しました:

SQL*Loader-704: Internal error: ulconnect:OCIServerAttache [0]

ORA-12154: TNS:could not resolve the connect identifier specified

どんなアイデアでも大歓迎です

4

5 に答える 5

1

「次のような tnsnames.ora を作成した場所:」

これは、データベース サーバーから TNSNAMES.ORA ファイルを送信したことを意味しているようです。

クライアントには TNSNAMES.ORA ファイルも必要です。それも正しく構成されていますか?

于 2011-06-04T04:19:39.363 に答える
0

基本的に、このエラーは、指定されたホスト、ポート、プロトコル、および service_name で、クライアントがリッスンしている Oracle サービスを見つけられなかったことを示しています。ホスト名が有効であること (例: ping できること)、リスナーが 1521 でリッスンしていること、サーバー データベースの service_name が実際に指定した名前であることを確認してください。sqlplus で次のコマンドを発行して確認できます。

SHOW PARAMETER service_names

これにより、データベースがリスナーに登録しているものがわかります。

于 2011-06-04T01:30:52.260 に答える
0

パスワードに @ 文字が含まれている場合、sqlldr ユーティリティは機能しません。パスワードを変更すると機能し ます http://www-01.ibm.com/support/docview.wss?uid=swg21347615

于 2015-06-12T14:56:24.233 に答える
0

私のように、このスレッドを見つけた人のために。

確認すべきことの 1 つは、tnsnames.ora ファイルのファイル権限です。

同じマシン上にあり、DBA グループの一部ではなく、ORACLE_HOME と ORACLE_BIN が正しく設定されているクライアントの場合、サブジェクト エラーが報告されました。tnsnames.ora ファイルのファイル許可により、すべての読み取りが妨げられました。tnsnames.ora ファイルを読み取れなかったため、サービス名を解決できなかったため、704 / 12514 がスローされました。

コマンド プロンプトから: chmod 644 $ORACLE_HOME/network/admin/tnsnames.ora

于 2014-11-10T19:33:19.757 に答える