2010-12-05 14 views
1

Ich versuche, Daten in eine Tabelle laden SQL ldr-sqlldr Fehler: Objekt existiert nicht bei dem Versuch, Daten in eine Datenbank einzufügen

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

simple.ctl mit: -

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 hat zwei Spalten: 1. Nummer 2. Name.

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

Aber ich bekomme die folgende Fehlermeldung -

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

Ich versuchte -

  1. sorgfältig die Dateipfade der Wahl, wo ich die Dateien speichern.
  2. Löschen und die Tabelle SIMPLE_TAB
  3. vorsichtig Neuer half mit Großbuchstaben in allen Befehlen

aber keine.

+0

Wenn Sie Code oder XML schreiben, ** bitte ** markieren Sie diese Zeilen im Texteditor und klicken Sie auf die Schaltfläche "Code" (101 010) auf der Editor-Symbolleiste, um es schön formatieren und Syntax hervorheben! –

Antwort

1

Sie waren wahrscheinlich mit einer anderen Datenbank (oder einem anderen Benutzer) verbunden, als Sie die create table Anweisung ausgeführt haben.

Was bedeutet select user from dual; zeigen Sie, wenn in SQL ausführen * Plus (zum Beispiel direkt nach/vor der create table läuft)

+0

Ich kann die Tabelle auf der linken Seite des SQL-Entwicklers hinzugefügt sehen. Ich bin mir ziemlich sicher, dass der Tisch erstellt wurde. – Radz

+0

Und Sie sind sicher, dass SQLDeveloper mit ** genau ** die gleiche Datenbank und Benutzer wie Ihre Verbindung für SQL * Loader verbindet? –

0

heute genau das gleiche Problem hatte. In meinem Fall war es, dass ich dachte der Tabellenname war tblname, als es in der Tat war "tblname" (mit Anführungszeichen).

Ich arbeite auch mit SQL Developer, und der Schema Browser zeigte, dass der Tabellenname tblname war, was mich getäuscht hat. Nur wenn ich das Ziehen-und-Ablegen-Dienstprogramm verwendete, um einen Auswahlbefehl aus dieser Tabelle zu erstellen, sah ich, dass der Tabellenname tatsächlich Anführungszeichen enthielt.

0

Ein weiterer Grund dafür kann auftreten, wenn Sie den Tabellennamen in der Steuerdatei nicht mit dem Schemanamen qualifizieren.

Wenn sich also Ihre Tabelle im Schema befindet und Ihr Tabellenname dadurch nicht qualifiziert ist, wird sich Sqlldr beschweren, wenn Sie einen anderen Login-Benutzer als verwenden.

Verwandte Themen