PDA

View Full Version : Wirres SQL Ergebnis



lyrics
24-08-06, 08:04
Hallo Zusammen,

ich habe da ein Phänomen, welches ich noch nicht hatte. Ich habe auf der AS400 eine Datei angelegt, welche ich mittels SQL auslese.

Wenn ich den Befehl "SELECT user, funktion, recht FROM ruvdta/berecpf1" ausführe, bekomme ich folgendes Ergebnis:

Register USER FUNKTION BERECHTIGUNG
TEST WrkAngestellt 1
TEST WrkGewerblich 1
TEST Start 1
TEST Start 0
TEST WrkAngestellt 0
TEST WrkGewerblich 0
TEST CrtVertrag 0

Dieses Ergebnis ist allerdings falsch, da das Feld Register weder im Select Statement selektiert wurde noch es in der Datei überhaupt existiert.

Der Befehl "select * from ruvdta/berecpf1" hingegeben gibt folgendes Ergebnis:

USER FUNKTION BERECHTIGUNG
TEST WrkAngestellt 1
TEST WrkGewerblich 1
TEST Start 1
*ALL Start 0
*ALL WrkAngestellt 0
*ALL WrkGewerblich 0
*ALL CrtVertrag 0

Dieses Ergebnis ist auch richtig. Hat jemand eine Idee woran das liegen kann???

Besten dank im voraus.

Lyrics

B.Hauser
24-08-06, 10:08
Hallo,

USER ist ein Special Register, das den aktuellen Benutzer zurückbringt, und keine Verbindung zu dem Feld USER in Deiner Datei herstellen kann.

Es gibt in SQL diverse Reserved Words und Schemas, die alle in der SQL-Referenz im Appendix H hinterlegt sind. Diese Reseved Words sind tabu! Wenn Du aber in einer Datei/Tabelle unbedingt ein Feld haben willst, das USER oder DATE heißt, musst Du diese Felder mit Gänsefüsschen " umgeben. (Dabei muss allerdings auch auf Groß- und Kleinschreibung geachtet werden, da alles was innerhalb der Anführungszeichen stehet case-sensitive ist.)
Versuch mal Dein SQL-Statement wie folgt abzuändern:



Select "USER", Funktion, Berechtigung
From ruvdta/berecpf1


Birgitta

lyrics
24-08-06, 12:10
uuuaaaahhhhhh

Na Klar daran habe ich natürlich überhaupt nicht gedacht......

Besten Dank