SQL Querry wird nicht abgesetzt, da vorher underlined!

Status
Nicht offen für weitere Antworten.

ven000m

Bekanntes Mitglied
Hallo,

ich habe folgendes Problem mit diesem Code:

1.) Wieso wird dort die erste Zeile des SQL Strings underlined?
2.) Wie kann ich z.B. das "?" durch ein in der Konsole eingelesenen String ersetzen?
3.) Ist folgender SQL Querry äquivalent dem, den ich aktuell benutze:
Code:
"select agents.aid, agents.aname,sum(dollars)" +
				"from orders, agents" +
				"where cid=c001 and orders.aid=agents.aid" +
				"group by agents.aid,agents.aname";
Besten Dank. :applaus:

Code:
import java.sql.*;
public class Blatt4Aufg5 {
	public static void main(String[] args) {
		String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
		String sql = "SELECT ORDERS.PID, ORDERS.AID, Sum(ORDERS.DOLLARS) AS Summe_VK_Produkte
				  +"FROM ((DBI_ORDERS INNER JOIN DBI_CUSTOMERS ON DBI_ORDERS.CID = DBI_CUSTOMERS.CID) INNER JOIN DBI_PRODUCTS ON DBI_ORDERS.PID = DBI_PRODUCTS.PID) INNER JOIN DBI_AGENTS ON DBI_ORDERS.AID = DBI_AGENTS.AID"
				 +"GROUP BY DBI_ORDERS.PID, DBI_ORDERS.AID"
				 +"HAVING (((DBI_ORDERS.PID)=?))"
				 +"ORDER BY DBI_ORDERS.PID";
		Connection con = null;
		Statement stmt;
		try {
				Class.forName("oracle.jdbc.driver.OracleDriver");
				con = DriverManager.getConnection(url, "dbi", "dbi");
		} catch (ClassNotFoundException e) {
		} catch (SQLException e1) {
		}
			try { 
				stmt = con.createStatement();
				ResultSet res = stmt.executeQuery(sql);
				while (res.next()) {
					String s1 = res.getString(1);
					String s2 = res.getString(2);
					String s3 = res.getString(3);
					int s4 = res.getInt(4);
					System.out.println(s1 + "\t" + s2 + "\t" + s3 + "\t" + s4);
				}
			} catch (SQLException e2) {
			}
	}
}
 

robertpic71

Bekanntes Mitglied
zu 1: Ich würde sagen, da fehlt das Anführungszeichen zu (") und das Plus (+)

zu 2: Such mal unter preparedStatement (Quick+Dirty zum Testen: Variablen mit + zusammenhängen)

zu 3: Nein, gibt mehrer Unterschiede, Außerdem fehlen mir da einige Leerzeichen --> SQLSyntaxfehler

aus: ..."from orders, agents" +
"where cid=c001 and....

wird: .... from orders, agentswhere cid ...

LG Robert
 

ven000m

Bekanntes Mitglied
Mhm... Leerzeichen?

Code:
"select agents.aid, agents.aname,sum(dollars)" + 
            "from orders, agents" + 
            "where cid=c001 and orders.aid=agents.aid" + 
            "group by agents.aid,agents.aname";

Das ist doch so richtig oder!??! Was meinste denn.

Ist er auch noch sachlich falsch? Wie müsste er denn heißen?
 

robertpic71

Bekanntes Mitglied
Lass dir mal den gebastelten String per System.out ausgeben:

Müsste dann ungefähr so aussehen:

select agents.aid, agents.aname,sum(dollars)from orders, agentswhere cid=c001 and orders.aid=agents.aidgroup by ...

Ich meine damit nur, dass du ein Leerzeichen am Ende der alten Zeile oder am Anfang der neuen Zeile machen mu0t. Sonst kleben die Wörter zusammen (wie oben) und du hast ein SQL-Syntaxfehler.

Das SQL schaut ok aus - ich kenn aber weder die Dateien noch die Erwartungen. Das SQL im Code hat eine (edit: CUSTOMERS) Datei (unnötig, da nicht im Output) mehr verknüpft und Where-Abfrage auf Gruppenebene --> HAVING (= Where für Gruppen)

LG Robert
 

Bleiglanz

Gesperrter Benutzer
in der ersten Zeile fehlen die " am Schluss

und du musst blanks reintun...

Code:
      String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
      String sql = "SELECT ORDERS.PID, ORDERS.AID, Sum(ORDERS.DOLLARS) AS Summe_VK_Produkte " // blank am schluss
              +"FROM ((DBI_ORDERS INNER JOIN DBI_CUSTOMERS ON DBI_ORDERS.CID = DBI_CUSTOMERS.CID) INNER JOIN DBI_PRODUCTS ON DBI_ORDERS.PID = DBI_PRODUCTS.PID) INNER JOIN DBI_AGENTS ON DBI_ORDERS.AID = DBI_AGENTS.AID " // blank am schluss
             +"GROUP BY DBI_ORDERS.PID, DBI_ORDERS.AID " // blank am schluss
             +"HAVING (((DBI_ORDERS.PID)=?)) " // blank am schluss
             +"ORDER BY DBI_ORDERS.PID "; // blank am schluss
 

ven000m

Bekanntes Mitglied
Code:
select agents.aid, agents.aname,sum(dollars)from orders, agentswhere pid=? and orders.pid=products.pidgroup by dollars desc

Hi,

ich hab mir das jetzt mal ausgeben lassen, aber sieht doch ganz gut aus? So müsste er doch durchkommen..

Gruß
 

Mag1c

Top Contributor
Hi,

- es fehlen diverse Leerzeichen.
- die Tabelle "products" taucht im "from" nicht auf.
- die Tabelle "agents" taucht im "where" nicht auf.

Gruß
Mag1c
 

ven000m

Bekanntes Mitglied
Ach ja stimmt, jetzt sehe ich es auch.

Ähm wie soll ich das ändern einfach Leerzeichen in den String, oder kann mir das einer mal als code hier posten ich übernehme das dann?

Gruß
 

Mag1c

Top Contributor
Hi,

wenn du SQL-Strings zusammensetzt (mit "+" oder StringBuffer) füge immer am Anfang oder am Ende oder an beiden Seiten ein extra Leerzeichen ein. Damit bist du auf der sicheren Seite. Zu viele Leerzeichen schaden hier nicht.

Gruß
Mag1c
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Hibernate - Querry mit Eingrenzung und Order; liefert nichts zurück Datenbankprogrammierung 4
multiholle SQL Querry über mehrere Spalten Datenbankprogrammierung 12
D JOIN COLUMN wird nicht genommen Datenbankprogrammierung 2
Maxim6394 JPA / EclipseLink - n:m Beziehung wird nicht aktualisiert Datenbankprogrammierung 0
Maxim6394 JPA 3.2 & SQLite - LocalDateTime wird falsch geladen Datenbankprogrammierung 1
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
Watsoon Treiber wird in Intellij nicht geladen Datenbankprogrammierung 2
Kirby.exe PreparedStatement wird nicht ausgeführt Datenbankprogrammierung 5
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
J Netbeans 11 und Eclipse JPA 2.5 Entity wird nicht gefunden Datenbankprogrammierung 4
F H2 ObjectOptimisticLockingFailureException wird nicht geworfen Datenbankprogrammierung 0
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
S MySQL Speicher wird nicht freigegeben bei Datenbankabfragen Datenbankprogrammierung 6
D MySQL Eingabe wird nicht übernommen... Datenbankprogrammierung 11
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
E Nur der letzte Datensatz wird in Tabelle geschrieben Datenbankprogrammierung 4
L JTable-DB: Letzter wert wird nicht angezeigt. Datenbankprogrammierung 0
K Datenbank wird bei Programmstart als .jar nicht mehr befüllt Datenbankprogrammierung 12
T MySQL Datetime wird auf Sekunden gerundet, soll es aber nicht Datenbankprogrammierung 2
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
M OutOfMemoryException obwohl nur 1 Eintrag abgefragt wird Datenbankprogrammierung 7
T f:event preRenderView Trigger wird nicht ausgeführt Datenbankprogrammierung 4
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
A MySQL Datensatz wird nicht richtig gelöscht Datenbankprogrammierung 6
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
S JPA, Primary Key wird nicht in relationstabelle erstellt Datenbankprogrammierung 3
B MySQL Hibernate (duplicate Entry) Beziehungstabelle wird nicht befüllt Datenbankprogrammierung 8
N batchupdate, es wird nur der letzte Eintrag eingetragen Datenbankprogrammierung 5
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
M Rückgabewert aus DB wird falsch gelesen Datenbankprogrammierung 3
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
C DB.Treiber wird nicht gefunden? Datenbankprogrammierung 5
E MySQL Treiber wird nicht geladen Datenbankprogrammierung 5
K org.gjt.mm.mysql.driver wird nicht gefunden Datenbankprogrammierung 11
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
N Ubuntu 9.04 jdbc connector wird nicht gefunden Datenbankprogrammierung 5
K Wird auf den Eintrag referenziert? Datenbankprogrammierung 4
J SqlConnection Instanz wird immer grösser? Datenbankprogrammierung 2
I Sql Befehl wird nicht ausgeführt Datenbankprogrammierung 8
sparrow [Hibernate] Relation wird nicht gespeichert (Topic changed) Datenbankprogrammierung 11
A REVOKE wird nicht durchgeführt Datenbankprogrammierung 2
M Treiber wird nicht gefunden Datenbankprogrammierung 5
P Datenbank wird nicht geschlossen - problematisch? Datenbankprogrammierung 2
N mysql.jdbc treiber wird nicht gefunden Datenbankprogrammierung 2
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
S JOptionPane wird nicht angezeigt Datenbankprogrammierung 5
W Nur ein Datensatz wird angezeigt, obwohl mehrere existieren Datenbankprogrammierung 7
D "Distinct" wird nicht ausgeführt Datenbankprogrammierung 8
H mySql Connector/J Treiber wird nicht gefunden Datenbankprogrammierung 2
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
H JDBC-Treiber wird nicht geladen Datenbankprogrammierung 2
L SQL-Problem: Insert wird nicht ausgeführt Datenbankprogrammierung 5
N Cloudscape wird opensource :) Datenbankprogrammierung 3
X Verbindung zu DB wird zurückgewiesen Datenbankprogrammierung 8
H letzter Datensatz wird nicht gefunden? Datenbankprogrammierung 6
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
T Datenzeilen werden nicht gelöscht Datenbankprogrammierung 6
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
rafi072001 MicroServices EurekaClient findet anderern EurekaClient nicht Datenbankprogrammierung 1
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
C MySQL SQL Statement wir nicht ausgeführt Datenbankprogrammierung 11
pkm Tomcat Classloader findet bei JPA-Persistierung die Persistence Unit nicht. Datenbankprogrammierung 11
F Tabellen automatisch erstellen wenn sie nicht existieren Datenbankprogrammierung 6
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
J Firebase KeepSynced funktioniert nicht Datenbankprogrammierung 0
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B MySQL Data Tools Plattform - "Database Connections" findet den Treiber nicht Datenbankprogrammierung 1
OnDemand One to Many bekomm es nicht hin Datenbankprogrammierung 7
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
R findet Derby.DB nicht !? Datenbankprogrammierung 5
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
P LDAP: Daten eintragen funktioniert nicht Datenbankprogrammierung 7
Ananaskirsche Datenbanktreiber kann nicht geladen werden Datenbankprogrammierung 2
U Kann die Tabellen nicht finden Datenbankprogrammierung 0
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben