FROM-Teil einer SQL-Anweisung darf nur max. 80 Zeichen lang sein ****?

placeboo

Grünschnabel
Hallo Leute,

ich habe ein Problem mit einer SQL-Anweisung, die ich über ein JAVA-Programm aufrufe.

Ich erhalte den folgenden Fehler:
Code:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

Dabei ist mir aufgefallen, dass er die SQL-Anweisung im FROM-Teil nach genau 80 Zeichen abschneidet.

Somit ist dann auch klar, warum der SQL-Befehl nicht mehr greift.

Kann man die maximale Länge irgendwie verändern?
Gibt es andere Befehle außer "executeQuery"?
Muß man irgendwas in der Datenbank einstellen?

Ich weiß nicht weiter...

Über einen Rat würde ich mich sehr freuen.

Gruß
placeboo
 

placeboo

Grünschnabel
Und scheidet er das SQL ab, oder gibt Java beim Debugen nicht mehr als 80 zeichen aus?
Er schneidet den FROM-Teil des SQL nach 80 Zeichen ab.

...bitte zeig mal den relevanten Codeteil her.
Java:
int i=0;
  		int g=1;
  		
  		System.out.println("PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP "+semester.length);
  		for(int j=0; j<semester.length; j++)
  		{
  		    System.out.println("HAAAAAAAAAAAAAAAAAAALLO");
  		    stmt = null;
  		    res = null;
  		
  		    try {
  			stmt = MySQL_Connection.getConn().createStatement();
  		    } catch (SQLException e1) {
  			// TODO Auto-generated catch block
  			e1.printStackTrace();
  		    }
  		
  		    try {
			res = stmt.executeQuery("SELECT t2."+semester[j][i]
					       +"FROM "
				               +"(SELECT * FROM fbiplan.veranstaltung6) t1 INNER JOIN (SELECT * FROM fbiplan.curricula) t2 "
				               +"ON t1.curricula = t2.curriculaNr "
				               +"WHERE "
				               +"t1."+semester[j][i] +"=" + unitimenr_DB + " AND t2."+semester[j][i] +" IS NOT null");
		    } catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		    }
  		
  		    try {
			while (res.next())
				semester[j][g] = res.getString(1);
		    } catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		    }
  		}

Folgende Fehlermeldung bekomme ich:
Code:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM fbiplan.veranstaltung6) t1 INNER JOIN (SELECT * FROM fbiplan.curri' at line 1
 
Zuletzt bearbeitet:

Yaslaw

alter Rempler
Moderator
Speichere das SQL zuerst in eine Variabl und lass sie dir ausgeben. Dann siehst du auch was da zuammengesetzt wird.
 

placeboo

Grünschnabel
Speichere das SQL zuerst in eine Variabl und lass sie dir ausgeben. Dann siehst du auch was da zuammengesetzt wird.

Habs getestet, ist richtig zusammengesetzt.
Es erscheint derselbe Fehler:
Code:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM fbiplan.veranstaltung6) t1 INNER JOIN (SELECT * FROM fbiplan.curri' at line 1
 

sheel

I love Asm
Und warum zeigst du uns das Ergebnis dann nicht...?
Wenn da Syntaxfehler steht stimmt das normalerweise auch.
 

placeboo

Grünschnabel
Habs getestet, ist richtig zusammengesetzt.
Es erscheint derselbe Fehler:
Code:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM fbiplan.veranstaltung6) t1 INNER JOIN (SELECT * FROM fbiplan.curri' at line 1

Irgendwann sieht man den Wald vor lauter Bäumen nicht mehr.....Es lag an einem Leerzeichen.

@Yaslaw: Vielen Dank für den Tipp, ohne Dich hätte ich noch mehr Zeit verschwendet und mir irgendwelche PreparedStatement reingezogen.