View Full Version : SQL-View Systemname
Guten Morgen,
liebe iSeries-Gemeinde. Ich habe ein generelles Problem mit der Erstellung von SQL-Views über den iSeries-Navigator.
Der SQL-Name kann mit bis zu 128 Zeichen definiert werden. Es besteht aber keine Möglichkeit den Systemname, wie z.B. wie bei Tabellen, selbst zu definieren. Hier wird der Systemname immer vom System generiert.
Gibt es keine Möglichkeit den Systemnamen selbst zu definieren?
MfG
HP Kahn
Wenn der Name 10 Stellen nicht übersteigt, in Großbuchstaben ist und den Namenskonventionen der AS/400-Objekte entspricht, ist der Systemname identisch zum SQL-Namen:
Create view "MyView" <= automatischer Systemname
create view MYVIEW <= identischer Systemname
Hallo Fuerchau,
genau das ist mein Problem. Laut firmeninterner Namenskonvention sollen SQL-Namen selbsterkärend sein und mit einem Objektpräfix versehen sein.
wie z.B.
V_KREDITANTRAG, daraus folgt dieser
Systemname:
V_KRE00001
aber dieser soll bei der Anlage direkt definert werden
hier könnte der Name z.B.
VKREDANTR verwendet werden.
Dies ist notwendig da Views mit unterschiedlichen Zugriffsmethoden verwendet werden (RPG oder SQL), Ich möchte den RPG-Entwicklern nicht zumuten mit dem generierten Systemname zu arbeiten.
Nach Anlage des Views kann dieser im Navigator umbenannt werden , aber diesen zusätzlichen Aufwand möchte ich unbedingt vermeiden.
MfG HP Kahn
Da hat man nun keinen Einfluss darauf.
Wenn solche Namenskonventionen existieren, dann sollte auch aus RPG ausschließlich per SQL zugegriffen werden.
Begründung:
Views enthalten kein ORDER BY, die Datenreihenfolge ist daher vollkommen willkürlich.
Views enthalten keine Schlüssel, ein Zugriff per SETLL o.ä. ist daher nicht möglich.
Bei einer Neuerstellung von Views ist nicht garantiert, dass der Systemname das nächste Mal genauso heißt (was du ja durch Umbenennen umgehst).
Per SQL können genau die Daten verarbeitet werden (incl. Order und Where), die benötigt werden. Ein "Select *" verbietet sich daher.
Dadurch kann jederzeit ein DB-Admin Views optimieren, ergänzen ohne dass Anwendungen geändert werden müssen, so lange eben die alte Struktur als Minimalanforderung bestehen bleibt,
Auch Views können sowohl mit einem langen Namen und einem kurzen System-Namen angelegt werden.
Die Syntax dazu sieht wie folgt aus:
create view MySchema/MyView
(MeinLangerFeldName1 for Kurz1,
MeinLangerFeldName2 for Kurz2)
as (Select Feld1, Feld2 from MySchema/MyTable)
Wahlweise kann jetzt Kurz1 oder MeinLangerFeldName1 verwendet werden.
Die Verwendung von Views in RPG (F-Specs) macht nur dann Sinn, wenn keine Sortierung erforderlich ist.
Birgitta
Das bezieht sich auf den Feldnamen (DDS = ALIAS).
Wie geht das mit dem View-Namen ?
Das bezieht sich auf den Feldnamen (DDS = ALIAS).
Wie geht das mit dem View-Namen ?
View, Table und Index-Namen müssen mit RENAME umbenannt werden. Da führt kein Weg dran vorbei.
Ich würde die View zunächst mit dem System-Namen anlegen und anschließend mit RENAME umbenennen.
RENAME TABLE MySchema.MyView
TO MeinLangerViewName
Sofern man auf Views und Indices mit RPG native I/O zugreifen will, sollte man den/die System-Namen NICHT durch das System generieren lassen.
Der Grund hierfür liegt darin, dass nicht sichergestellt ist, dass bei einer erneuten Erstellung der Objekte die gleichen System-Namen für die gleichen Objekte oder die gleichen Felder wieder vergeben werden.
M.E. ist es auch kein Problem, nachdem das Datenbank-Objekt erstellt wurde sich das zugehörige SQL-Skript generieren zu lassen und abzuspeichern. Bei einer erneuten Erstellung kann dieses Skript dann einfach ausgeführt werden.
@Fuerchau:
Indices lassen sich übrigens wie jede geschlüsselte logische Datei in RPG verarbeiten. Man braucht keineswegs alle Felder als Schlüssel-Felder zu hinterlegen.
Durch die Bitmaps, die auf der untersten Ebene des Index-Baumes hinterlegt sind, kann auf die entsprechenden Datensatz-Informationen zugegriffen werden. Anders arbeitet SQL auch nicht.
Durch die Verwendung von Indices mit native I/0 kann von der größeren PageSize (64K) gegenüber 8K bei DDS-beschriebenen logischen Dateien profitiert werden.
Birgitta