-
addendum: *LIBL kann gefährlich sein, wenn man nicht sicherstellt, daß sie jederzeit wie gewünscht gesetzt ist. Da hat IBM auch neulich lernen müssen, daß QSYS immer qualifiziert werden sollte.
Sauber wäre es in diesem Falle, die SQL-Sourcen zu verwenden und mit anderem Schema neu zu erstellen.
-
Zunächst einmal kann man nicht mehr davon ausgehen, dass man anhand des Trennzeichens zwischen Biblothek und Objekt erkennen kann, ob man mit SQL oder System-Naming arbeitet.
Seit Release 7.1 TR 5 kann man nämlich bei System Naming sowohl den Punkt als auch den Schägstrich angeben.
Beim Erstellen von Views, Stored Procedures und User Defined Functions und Triggern werden auch bei unqualifiziertend Objekt-Angaben die eingebundenen Objekte ermittelt und die Bibliothek HART in den zu erstellenden Source Code integriert.
Verwendet man dabei System Naming werden die Objekte aus der aktuellen Bibliotheksliste ermittelt.
Verwendet man SQL Naming, werden die Dateien (phys. Dateien, SQL Tabellen, Views) aus dem Current Schema ermittelt. Alternativ kann man auch das Current Schema in einem integrierten SET OPTION Statement hinterlegen. Die SQL Routinen (Stored Procedures und User Defined Functions) werden aus dem Current Path ermittelt. Eine Art Bibliotheksliste, d.h. es können mehrere Bibliotheken aufgelsitet werden und diese werden in der angegebenen Reihenfolge durchsucht. Der Sonderwert *LIBL kann beim SQL Pfad angegeben werden. Auch der SQL PATH kann für das Erstellen und Ausführen über SET OPTION festgelegt werden.
Wird SQL Naming verwendet, kann nur eine Daten-Bibliothek unqualifizert angegeben werden. Dateien, Views, Aliases in anderen Bibliotheken müssen qualifiziert angegeben werden.
Um das festzustellen muss man lediglich mal einen kleinen Reverse Engineering (ACS - GENERATE SQL) um zu sehen wie der zur Erstellung des Objekts verwendete Source Code aussieht.
Sofern die Objekte neu erstellt werden sollen und entsprechende SQL Skripte mit RUNSQLSTM ausgeführt werden sollen, kann das Default Schema (für unqualifiziet angegebene phys. Dateien, Tabellen, Views) über die Option DFTRDBCOL angegebben werden.
Das gilt natürlich alles nur für statisches SQL! Dynamisches SQL wird erst zur Laufzeit ausgeführt, d.h. und dann die unqualifiziert angegebenen Objekte aus der Laufzeitumgebung (SQL Naming = Bibliotheksliste und System Naming = Current Schema, Current Path) ermittelt.
Langer Rede kurzer Sinn, was Holger auch schon gesagt hat!
Beim Kopieren/Umbenennen die SQL Scripte für die abhängigen Datenbanken-Objekte generieren oder sofern vorhanden entsprechend anpassen und danach ausführen.
Similar Threads
-
By malzusrex in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 21-03-16, 14:03
-
By Duriel in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-07-15, 08:56
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 21-02-15, 10:37
-
By Allrounder in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 08-02-08, 10:09
-
By ZHamburg in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 12-07-07, 18:21
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks