Arrays in SQL

Rokko_11

Mitglied
Hallo!

Gibt es sowas wie Arrays in SQL?
Ich stelle mir ungefähr folgendes vor:

SQL:
a = ('1','2','3','5','8','13','21');

-- und dann beliebig oft

update tabelle_1 set column_1 = "foo" where id in a;
-- usw...
update tabelle_n set column_k = "foo" where id in a;

Und wenn es sowas gibt, kann man das dann auch in SQL per (for|foreach)-Schleife durchlaufen?

Gruß!
Rokko
 
S

SlaterB

Gast
IN ist ein Schlüsselwort, eine normale SQL-Query bzw. Update kannst du damit anreichern,
für Zahlen (bei Id) dabei besser auf Anführungszeichen verzichten

Variablen, Schleifen usw. gibt es in normalen SQL nicht, Querys kann man noch halbwegs mit UNION zusammen schreiben,
Updates nur einzeln hintereinander weg,


Stored Procedure gibt es in manchen DBs
Gespeicherte Prozedur ? Wikipedia
Neben der gewöhnlichen Syntax der Abfragesprache (meist SQL) können in gespeicherten Prozeduren auch zusätzliche Befehle zur Ablaufsteuerung und/oder Auswertung von Bedingungen hinzugefügt werden. Damit können sie mit Makrosprachen bestimmter Anwendungsprogramme verglichen werden.
 

jstei001

Aktives Mitglied
Du kannst einen Array auch realisieren als Tabelle, da funktioniert glaub ich auch die abfrage [c]where id IN mytable[/c]. Ansonsten gibt es cursor, mit denen man eine for each schleife auf Tabellen einfach realisieren kann. Aber den gibts in PL/SQL nicht im normalen sql. Schau mal hier vllt hilfts ja

SQL: 11.3.3 Arrays
 
S

SlaterB

Gast
es gibt das IN-Statement, das SQL dazu kann man notfalls Zeichen für Zeichen als String zusammenbauen
 
S

SlaterB

Gast
nun, das vermindert zumindest die Querys von 1000 auf 4, gibt das immer noch Abbrüche?

ich selber habe bei Hibernate bei 1000 Ids Grenze und verknüpfe mehrere INs mit OR ;)
 

Ähnliche Java Themen

Neue Themen


Oben