SELECT auf database

fenerli23

Erfahrenes Mitglied
hi,
mein einsicht nach müsste mein Code stimmen, jedoch tritt irgendwie immer ein Fehler auf könnt ihr mal gucken bitte...
 
Zuletzt bearbeitet:
hi,
mein einsicht nach müsste mein Code stimmen, jedoch tritt irgendwie immer ein Fehler auf könnt ihr mal gucken bitte...

Code:
...
			
			//hier wir der Select Befehl ausgeführt
			//Datenbank wird hier rausgelesen 
			rset = stmt.executeQuery("SELECT LAST_NAME,FIRST_NAME, DEPARTMENT_ID, MANAGER_ID FROM employees" +
					"WHERE DEPARTMENT_ID = 50  " +
					"AND MANAGER_ID = 120");
			
			// declare constants for column indexes in the query 
			final int EMPLOYEE_COLUMN_INDEX = 1;
			...

FEHLER:
Code:
error messgae: ORA-00933: SQL-Befehl wurde nicht korrekt beendet

java.sql.SQLException: ORA-00933: SQL-Befehl wurde nicht korrekt beendet

	....


Wenn Du Dir mal Dein SQL-Statement ausgeben läßt (s.o. fettgedruckt), wirst Du feststellen, dass ein Leerzeichen fehlt.

Es muß wie folgt lauten:
Code:
rset = stmt.executeQuery("SELECT LAST_NAME,FIRST_NAME, DEPARTMENT_ID, MANAGER_ID FROM employees[_]" +
					"WHERE DEPARTMENT_ID = 50  " +
					"AND MANAGER_ID = 120");

Das [_] ist durch ein Leerzeichen zu ersetzen...
 
stimmt dank dir nun kommt diese Fehlermeldung:

Code:
error messgae: Konvertierung zu interner Darstellung nicht erfolgreich
java.sql.SQLException: Konvertierung zu interner Darstellung nicht erfolgreich
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
	at oracle.jdbc.driver.CharCommonAccessor.getInt(CharCommonAccessor.java:132)
	at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:521)
	at select.GetSelect.main(GetSelect.java:65)
 
Was steht denn in
Code:
at select.GetSelect.main(GetSelect.java:65)
Zeile 65 +- in der GetSelect.java?
 
Zuletzt bearbeitet:
Ich denke das es daran liegt, dass du nur vier Spalten hast und auf die Fünfte zugreifen willst. (SELECT LAST_NAME,FIRST_NAME, DEPARTMENT_ID, MANAGER_ID)

Vielleicht eher SELECT * FROM ....
 
ja daran hats gelegen... aber kann ich nicht einen code erstellen indem ich den Select befehl willkürlich immer verändern kann?
 
Du kannst mit

ResultSetMetaData rsmd = resultSet.getMetaData();
int numberOfColumns = rsmd.getColumnCount();

die Anzahl der Spalten auslesen und dann mit einer for-Schleife auslesen.

while(resultSet.next())
{
for (int i=1; i <= numberOfColumns;i++)
{
try
{
System.out.println(rsmd.getColumnName(i)+" "+ resultSet.getString(i));
}
catch (Exception ex)
{
System.out.println(ex);
}
}
}
 
Zuletzt bearbeitet:
Wenn du das in dein Programm eingebaut hast, könnte es daran liegen das deine Variable für das ResultSet "rset" lautet. Also in meinem Programmcode resultSet durch rset ersetzten.
 

Neue Beiträge

Zurück