2016-04-28 10 views
1

existiert, wenn ich versuche, Daten aus Oracle-Datenbank zu lesen, mit dem folgenden Code i Ausnahme war immerjava.sql.SQLSyntaxErrorException: ORA-00942: Tabelle oder Sicht nicht

ResultSet res=stmt.executeQuery("select * from food"); 

Aber diese Tabelle ist tatsächlich existiert in meiner Datenbank, wenn ich diesen Befehl direkt in der Eingabeaufforderung verwendet funktioniert es gut. Und auch für eine Tabelle unter den Tabellen in der Datenbank funktioniert dieser Code gut, aber für andere Tabellennamen funktioniert es nicht richtig. So jemand bitte erklären, warum dies ist Ereignis.

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist 

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837) 
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523) 
    at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193) 
    at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:852) 
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153) 
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275) 
    at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1477) 
    at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:392) 
    at connecttooracle.ConnectOracle.main(ConnectOracle.java:67) 

Ich habe Zugriff auf Daten von Essen Tabelle von Toad. Warum bekomme ich diesen Fehler in Java?

Mein vollständiger Code ist:

public class ConnectOracle { 

public static void main(String[] args) { 

    String driver = "oracle.jdbc.driver.OracleDriver"; // 

    String serverName = "10.11.201.84"; 
    String portNumber = "1521"; 
    String db = "XE"; 
    String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" 
    + db; // connectOracle is the data 
    // source name 
    String user = "ORAP"; // username of oracle database 
    String pwd = "ORAP"; // password of oracle database 
    Connection con = null; 
    ServerSocket serverSocket = null; 
    Socket socket = null; 
    DataInputStream dataInputStream = null; 
    DataOutputStream dataOutputStream = null; 

    try { 
    Class.forName(driver);// for loading the jdbc driver 

    System.out.println("JDBC Driver loaded"); 

    con = DriverManager.getConnection(url, user, pwd);// for 
       // establishing 
    // connection 
    // with database 
    Statement stmt = (Statement) con.createStatement(); 

    serverSocket = new ServerSocket(8888); 
    System.out.println("Listening :8888"); 

    while (true) { 
    try { 

    socket = serverSocket.accept(); 
    System.out.println("Connection Created"); 
    dataInputStream = new DataInputStream(
     socket.getInputStream()); 
    dataOutputStream = new DataOutputStream(
     socket.getOutputStream()); 
    System.out.println("ip: " + socket.getInetAddress()); 
    // System.out.println("message: " + 
    // dataInputStream.readUTF()); 

    ResultSet res=stmt.executeQuery("select * from food"); 
    while(res.next()){ 
     System.out.println(res.getString(1)); 
    } 

    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 

    if (dataInputStream != null) { 
    try { 
     dataInputStream.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 

    if (dataOutputStream != null) { 
    try { 
     dataOutputStream.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
    } 
    } catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
} 
} 
+0

wenn Tabelle vorhanden ist auf Ihrer Datenbank, dann überprüfen Sie Ihre Db-Verbindung in Ihrer App –

+0

Versuchen Sie, Ihre Datenbank-Schema vor Ihrer Tabelle 'Essen' hinzuzufügen. – Blank

+0

Wie kann ich ein Datenbankschema hinzufügen? –

Antwort

5

Wenn Ihre Tabelle unter Schema A befindet:

select * from A.food 

EDIT

Wenn Sie über TOAD mit Benutzern ORAP anmelden und ausführen können, die gleiche Abfrage (wählen Sie * aus Essen), dann haben Sie definitiv die Tabelle im ORAP-Schema. Ich sehe keinen Grund dafür, dass "Select * from ORAP.food" fehlschlägt.

+0

Ich habe es versucht. ResultSet res = stmt.executeQuery ("select * from XE.food"); Aber ich bekomme denselben Fehler. –

+0

XE ist Ihr Datenbankname. Verwenden Sie "ORAP.food" –

+0

gleichen Fehler ist von mir –

-1

Gelesen this. Es gibt alle Gründe und Lösungen.

0

Aufgrund dieser URSACHE haben Sie diese Ausnahme gefunden. Sie haben versucht, eine SQL-Anweisung auszuführen, die auf eine Tabelle oder Sicht verweist, die entweder nicht existiert, auf die Sie keinen Zugriff haben oder die zu einem anderen Schema gehört, und auf die Tabelle nicht anhand des Schemanamens verwiesen hat.

+0

Ich habe alles überprüft, aber nichts passiert. –

+0

Können Sie bitte Ihr Problem ausarbeiten, damit ich die Lösung geben kann. – user3864613

+0

Verwenden Sie Ihren ScemaName.tableName in der Abfrage – user3864613

0

Führen Sie die folgenden Schritte

  • Erstanmeldung zu TOAD gleichen Benutzernamen und Passwort. Wenn es Fehler gibt, dann sind Ihre Anmeldeinformationen falsch
  • Wenn Sie in der Lage sind erfolgreich dann einzuloggen versuchen, diese Abfrage: SELECT table_name, owner, tablespace_name FROM all_tables;
  • können Sie sehen Ihr Tabellenname vorhanden ist oder nicht über Abfrage mit
Verwandte Themen