2010-12-05 34 views
1

にデータを挿入しようとしたときにオブジェクトが存在していない私は、テーブルにデータをアップロードしようとしているSQL ldr-を使用してSQLLDRエラー:データベース

sqlldr userid=aa2012/[email protected] control=simple.ctl 

simple.ctl: -

LOAD DATA 
INFILE '../data/simple.csv' 
BADFILE '../data/simple.bad' 
DISCARDFILE '../data/simple.dsc' 
INTO TABLE SIMPLE_TAB 
replace 
fields terminated by ',' optionally enclosed by '"' 
(
    ID INTEGER 

EXTERNAL, 
    NAME CHAR(32) 
) 

simple.csvには2番目の列があります:1st-number 2nd Name。

create table Simple_Tab (
    id number primary key, 
    name varchar2(32) 
) 

しかし、私は次のエラーを取得する -

SQL*Loader: Release 10.2.0.1.0 - Production on Sat Dec 4 22:43:55 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL*Loader-941: Error during describe of table SIMPLE_TAB ORA-04043: object SIMPLE_TAB does not exist

私が試した -

  1. を慎重に私は、ファイルを保存するファイルパスを選択します。
  2. 削除し、慎重にすべてのコマンド

に大文字を使用して、テーブルSIMPLE_TAB

  • を再作成するが、どれも助けません。

  • +0

    投稿する場合は、テキストエディタでこれらの行を強調表示し、エディタツールバーの「コード」ボタン(101 010)をクリックして、フォーマットや構文を強調表示してください。 –

    答えて

    1

    create tableステートメントを実行すると、おそらく別のデータベース(またはユーザー)に接続されていました。

    SQL * Plusで実行するとselect user from dual;

    +0

    このテーブルは、sqldeveloperの左側のパネルに追加されています。だから私はテーブルが作成されていることを確信しています。 – Radz

    +0

    そして、SQLDeveloperがSQL * Loaderの接続と同じデータベースとユーザーに**正確に**接続することは確かですか? –

    0

    (例えば右create tableを実行する前に/後)あなたが何を示していが、今日正確に同じ問題を持っていました。私の場合、と思ったのはテーブル名はtblnameで、実際には"tblname"(引用符付き)でした。

    私はSQL Developerでも動作しますが、スキーマブラウザではテーブル名がtblnameであることがわかりました。ドラッグ・アンド・ドロップ・ユーティリティを使用してこのテーブルからselectコマンドを作成した場合にのみ、テーブル名に実際に引用符が含まれていました。

    0

    制御ファイル内の表名をスキーマ名で修飾しないと、もう1つの理由が発生します。

    テーブルがscottのスキーマにあり、テーブル名がこれによって修飾されていない場合、scott以外のログインユーザーを使用すると、Sqlldrがエラーになります。

    関連する問題