Documentation Index

Fetch the complete documentation index at: https://docs.lobstersoftware.com/llms.txt

Use this file to discover all available pages before exploring further.

select into map(a,b,[param &1 equals c], d,e, f,g,h,i,j], delimiter k, map l,m,n,o,p)

Prev Next

Der Befehl führt das SQL-Select-Statement a auf der Datenbank mit dem Alias b aus. Er ersetzt die Platzhalter der Form &Parameternummer im Statement durch die Werte ab Parameter c bis j. Zeichen, die für eine gültige Syntax des Statements erforderlich sind (zum Beispiel Hochkommas um Zeichenketten) müssen bereits im Statement enthalten sein. Eine Begrenzung der Ergebnismenge findet nicht statt. Sollten also weniger Zeilen gelesen werden, muss dies über eine entsprechende LIMIT-Anweisung im SQL geschehen.

Die Ergebnistabelle wird in eine Map mit Namen l geschrieben. Der Wert der ersten Spalte wird hierbei als Schlüssel angesehen. Die restlichen Spalten der Ergebniszeile werden durch Trennzeichen k getrennt und zu einer Zeichenkette zusammengefasst. Diese Zeichenkette wird unter dem Schlüssel als Wert in der Map abgelegt. Vor dem Schreiben leert die Funktion die Map, sofern Parameter o dies nicht unterdrückt.

Der Rückgabewert der Funktion ist die Anzahl an erhaltenen Datensätzen.

Sind in der Ergebnismenge Spalten vom Typ BLOB, legt der Parameter m fest, ob die Binärdaten Base64-kodiert in die Ergebnislisten (Einträge der Map) geschrieben werden. Ist m gleich true, kodiert die Funktion die Daten Base64. Andernfalls bleiben die Daten unverändert. Gibt es keine solchen Spalten in der Ergebnismenge, hat der Wert des Parameters keinen Effekt.

 WICHTIG:  Neben der Schreibweise &Parameternummer ist auch die Schreibweise für Prepared Statements in der Form @Parameternummer:Parametertyp@ möglich. Diese verhindert sogenannte SQL Injection Attacks und ist daher zu bevorzugen. Innerhalb von „Prepared Statements“ ersetzen Parameter ausschließlich einzelne Werte. SQL-Syntax wie Wertelisten für IN, Tabellen- oder Spaltennamen, Operatoren, Sortierungen oder komplette SQL-Fragmente kann nicht über Platzhalter übergeben werden.

Parameter

Parameter

Beschreibung

a

Auszuführendes SQL-Statement.

b

Der Datenbank-Alias.

c

(optional) Parameter &1 im Statement.

d

(optional) Parameter &2 im Statement.

e

(optional) Parameter &3 im Statement.

f

(optional) Parameter &4 im Statement.

g

(optional) Parameter &5 im Statement.

h

(optional) Parameter &6 im Statement.

i

(optional) Parameter &7 im Statement.

j

(optional) Parameter &8 im Statement.

k

Trennzeichenfolge.

l

Name der Map.

m

(optional) true, wenn Daten aus einer Spalte vom Typ BLOB Base64-kodiert in die Ergebnislisten aufgenommen werden sollen. Default: false

n

true für „read only“-Modus.

o

(optional) true, wenn die Map vor dem Schreiben nicht gelöscht werden soll. Default: false

p

(optional) Falls true, dann werden SQL-Fehler, die von der Datenbank gemeldet werden, ignoriert. Default: <leer> (== false).

Beispiele

Gegeben sei eine Tabelle zipcodes, die die Postleitzahlen von Deutschland enthalte (insgesamt imaginäre 20000 Einträge).

Parameter a

b

c

d…j

k

l

m

n

o

p

Ergebnis

select zipcode, city, county from zipcodes

testdb

;

ZIPS

false

20000

Das Ergebnis ist eine Map ZIPS, die 20000 Einträge mit der Postleitzahl als Schlüssel und der Stadt und deren Bundesland als Wert enthält, zum Beispiel {80336=München;Bayern}.

Parameter a

b

c

d…j

k

l

m

n

o

p

Ergebnis

select zipcode, city, county from zipcodes where zipcode = &1

testdb

80336

;

ZIPS

false

1

select zipcode, city, county from zipcodes where zipcode = @1:i@

testdb

80336

;

ZIPS

false

1

Erzeugt die zuvor genannte Map mit ausschließlich dem oben genannten Eintrag.

Parameter a

b

c

d..j

k

l

m

n

o

p

Ergebnis

select zipcode, city, county from zipcodes where county = '&1'

testdb

Bayern

;

ZIPS

false

1500

select zipcode, city, county from zipcodes where county = @1:s@

testdb

Bayern

;

ZIPS

false

1500

select zipcode, city, county from zipcodes where county = &1

testdb

Bayern

;

ZIPS

false

Fehler, da Textliterale in Hochkommas stehen müssen.

Erzeugt in den ersten beiden Fällen die zuvor genannte Map mit allen bayerischen Postleitzahlen.