[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    27

    Question 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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Feb 2005
    Beiträge
    27
    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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,
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Auch Views können sowohl mit einem langen Namen und einem kurzen System-Namen angelegt werden.

    Die Syntax dazu sieht wie folgt aus:
    PHP-Code:
    create view MySchema/MyView                                 
           
    (MeinLangerFeldName1 for Kurz1,                     
            
    MeinLangerFeldName2 for Kurz2)                     
        as (
    Select Feld1Feld2 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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das bezieht sich auf den Feldnamen (DDS = ALIAS).
    Wie geht das mit dem View-Namen ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau
    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.

    PHP-Code:
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  3. SQL -> CREATE VIEW
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 17
    Letzter Beitrag: 11-05-06, 14:57
  4. SQL VIEW
    By KM in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 12-01-06, 08:52
  5. SQL view
    By lieser in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 08-11-04, 04:11

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •