2016-05-03 2 views
3

konnte ich nicht lösen Verbindung zu einer Oracle-Datenbank perfekt mit PL/SQL Developer. Ich habe versucht, von meinem Java-Code auf die Datenbank zuzugreifen. Danach erhielt ich den Fehler "ORA-12154 TNS: konnte nicht aufgelöst werden" von PL/SQL Developer; Ich bin immer noch in der Lage, auf die Datenbank zuzugreifen und sie über meinen Code abzufragen.Mit Oracle, plötzlich erhalten ORA-12154 TNS: konnte Nachricht

Ich habe Lösungsvorschläge für diesen Fehler gelesen, aber da ich einen Thin Client mit eingeschränkten Rechten sowohl auf Windows als auch auf einem Datenbankserver verwende (ich kann nur darauf abfragen !!), konnte ich sie nicht verwenden.

Ich schätze jeden Vorschlag zur Lösung dieses Problems.

Und ich bin auch sehr neugierig auf den Grund für dieses Problem, da alles in Ordnung war, bevor ich meinen Code ausführte; Das ist so einfach wie das Verbinden mit einer Datenbank und das Abfragen einer Ansicht, für die ich Privilegien hatte !!! Bitte beachten Sie, dass auch andere Benutzer auf anderen Thin Clients keine Verbindung zum PL/SQL Developer herstellen können. Mein Code ist wie folgt:

public static void main(String[] args) throws IOException { 
    // TODO code application logic here 

    Logger logger = Logger.getLogger("MyLog"); 
    FileHandler fh; 
    fh = new FileHandler("C:/Users/batam/Documents/MyLogFile.log"); 
    logger.addHandler(fh); 
    SimpleFormatter formatter = new SimpleFormatter(); 
    fh.setFormatter(formatter); 

     Class.forName("oracle.jdbc.driver.OracleDriver"); 

     Connection connection = null; 

    try { 
     connection = DriverManager.getConnection(
       "jdbc:oracle:thin:@capmtr10:1521/FINDATA1", "bamat", 
       "fg_3002"); 

    } catch (SQLException e) { 

       e.printStackTrace(); 

     return; 

    } 

    if (connection != null) { 

     try { 
      String sql = "select a.userid, a.Description from USER_FINANCE a where a.userid = 'batam'"; 

      Statement stmt = connection.createStatement(); 

      ResultSet rs = stmt.executeQuery(sql); 

      while (rs.next()) { 

       String id = rs.getString("userid"); 
       String name = rs.getString("Description"); 

       logger.info("Selecteds are : " + id + " : " + name); 
      } 

      rs.close(); 
      stmt.close(); 
     } catch (SQLException e) { 
      logger.info("SQLException : " + e.getMessage()); 
     } finally { 
      try { 
       connection.close(); 
      } catch (SQLException ex) { 
       Logger.getLogger(IFS.class.getName()).log(Level.SEVERE, null, ex); 
       logger.info("Close Exception : " + ex.getMessage()); 
      } 
     } 

    } else { 
     System.out.println("Failed to make connection!"); 
     logger.info("Failed to make connection!"); 
    } 

} 

ich die Server-Hostnamen und Dienstnamen von PL/SQL-Entwickler auf meinem Thin Client mit system_context Funktion abgerufen habe, während es immer noch ohne diesen Fehler zu verbinden.

Vielen Dank im Voraus.

+0

Zeigen Sie uns den Code, der die Ausnahme verursacht hat. –

+0

PL/SQL ist kein Tool zum Zugriff auf Oracle. Wie lautet der echte Name des Werkzeugs, das Sie verwendet haben? PL/SQL-Entwickler? SQLplus? SQL Entwickler? Kröte? – Codo

+0

Und welche Verbindungszeichenfolge verwenden Sie in Java? Und welche Verbindungseinstellungen haben Sie im anderen Tool festgelegt? – Codo

Antwort

0

Haben Sie die Oracle-Client-Tools installiert? Wenn dies der Fall ist, würde das Anbinden von YOUR_SID an cmd Ihnen den Status Ihrer Verbindung zur Datenbank geben.

Verwandte Themen