-
SQL RENAME TABLE und Tabellen-Name < 10 Zeichen
Moin zusammen,
jetzt habe ich mir soviel Mühe gemacht und beim Abschicken des Textes geht's in die Grütze - also noch Mal
Hoffentlich reicht auch die Kurzform.
Für lange SQL-Namen funktioniert der RENAME TABLE:
CREATE TABLE "ChurchMembershipType" (...
RENAME TABLE "ChurchMembershipType" TO SYSTEM NAME "CHURCHMTYP";
Ergibt:
TABLE_NAME: ChurchMembershipType
SYSTEM_TABLE_NAME: CHURCHMTYP
Bei kurzen SQL-Namen arbeitet der RENAME nicht wie erwartet:
CREATE TABLE "Passport" (...
Ergibt:
TABLE_NAME: Passport
SYSTEM_TABLE_NAME: "Passport"
RENAME TABLE "Passport" TO SYSTEM NAME "PASSPORT";
Ergibt:
TABLE_NAME: PASSPORT
SYSTEM_TABLE_NAME: PASSPORT
Bei meiner Suche bin ich nicht erfolgreich gewesen und hoffe dass ihr eine Lösung/Workaround habt.
Ziel ist die SQL-Namen case-sensitiv und die System-Namen upper-case darzustellen, d.h.
TABLE_NAME: Passport
SYSTEM_TABLE_NAME: PASSPORT
Vielen Dank im Voraus und einen schönen Abend
Gruß
Wolfgang
-
Nun der Befehl lautet ja auch:
Rename OldName to NewName for system name SYSNAME
Soll der Name casesensitive werden, muss der Befehl eben
Rename "OldName" to "NewName" for system name SYSNAME
lauten.
Allerdings bringt dir das ja bei 10-stelligen Namen eher wenig, da ja der Systemname und Tablename alternativ verwendet werden kann.
Was für einen Sinn macht es,
select * from "Passport"
von
select * from passport
oder
SELECT * FROM PASSPORT
zu unterscheiden?
Ich denke mal die DB übernimmt den 10-stelligen Systemnamen als Tabellen-Namen, wenn er den Richtlinien für Objektnamen entspricht.
-
Die AS/400 tut's teilweise, denn "Passport" bezieht sich nicht (immer) auf dasselbe Objekt wie passport oder Passport oder PASSPORT.
Zitat von Fuerchau
Was für einen Sinn macht es,
select * from "Passport"
von
select * from passport
oder
SELECT * FROM PASSPORT
zu unterscheiden?
-
Zitat von Fuerchau
Nun der Befehl lautet ja auch:
Rename OldName to NewName for system name SYSNAME
Soll der Name casesensitive werden, muss der Befehl eben
Rename "OldName" to "NewName" for system name SYSNAME
lauten.
Allerdings bringt dir das ja bei 10-stelligen Namen eher wenig, da ja der Systemname und Tablename alternativ verwendet werden kann.
Was für einen Sinn macht es,
select * from "Passport"
von
select * from passport
oder
SELECT * FROM PASSPORT
zu unterscheiden?
Ich denke mal die DB übernimmt den 10-stelligen Systemnamen als Tabellen-Namen, wenn er den Richtlinien für Objektnamen entspricht.
Moin,
den Befehl kenne ich auch:
RENAME TABLE "Passport" to "Passport" for SYSTEM NAME "PASSPORT"
...bringt aber bei mir folgende Fehlermeldung:
> RENAME TABLE "Passport" to "Passport" for SYSTEM NAME "PASSPORT"
SQL State: 428B8
Vendor Code: -7029
Message: [SQL7029] Neuer Name "Passport" ist ungültig. Ursache . . . . : Es wurde versucht, "Passport" in PARTNERLIB umzubenennen, der neue Name ist jedoch ungültig. Sowohl der neue Name als auch der neue Systemname sind gültige Systemnamen. Werden beide Namen in der Anweisung RENAME angegeben, kann nur der Name, der auf SYSTEM NAME folgt, ein gültiger Systemname sein. Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die Anforderung wiederholen: -- Entweder den neuen Namen oder den neuen Systemnamen angeben. -- Den ersten Namen in einen Namen ändern, der als Systemname nicht gültig ist.
Ein Rename lässt sich nur ausführen wenn der neue Name unterschiedlich zu dem alten Namen ist. Allerdings habe ich verschiedene Kombinationen ausprobiert und nicht das gewünschte Ergebnis erzielt - die Tabelle zunächst unter einem anderen Namen zu erzeugen kann ja auch nur eine Krücke sein.
Allerdings bringt mir das nicht nur ein einheitliches Bild und nicht so etwas:
PHP-Code:
Mit Dateien arbeiten Auswahl eingeben und Eingabetaste drücken. 1=Erstellen 3=Kopieren 4=Löschen 5=Physische Teildatei anzeigen 8=Dateibeschreibung anzeigen 9=Sichern 10=Zurückspeichern 13=Beschreibung ändern
Ausw Datei Bibliothek Attribut Text "Passport" PARTNERLIB PF ADDRESSTYP PARTNERLIB PF Address Type
Außerdem kann ich in diesen Fällen die Schreibweise nicht alternativ verwenden, da ich nur case-sensitiv oder nur upper-case umbenennen kann.
Somit muss ich auch auf dem GreenScreen case-sensitiv arbeiten:
dspffd partnerlib/"Passport"
dspffd partnerlib/passport funktioniert nicht(!!!)
Gruß
Mr. Monk
-
Na ja, das System weist doch mit der Fehlermeldung darauf hin, wenn der Tabellenname einem Systemnamen entspricht, dass dann nur der Systemname gesetzt werden kann.
Beim Create Table wird der Systemname natürlich automatisch generiert.
In deinem Beispiel ggf. PASSP00001.
Somit kannst du den Systemnamen natürlich auch ansprechen.
Aber warum machst du dir die Mühe überhaupt?
Wenn du doch mit SQL arbeitest und unbedingt casesensitive, dann ignoriere doch die Systemnamen einfach. Für die Anzeige von Tabelleninformationen gibt es dann andere Hilfsmittel als den DSPFD/FFD.
Z.B. diverse SQL-Explorer, den iSeries-Navigator, u.v.m.
Ja ich weiß, nicht auf dem Greenscreen.
Aber da gibts dann die selben Schwierigkeiten mit den casesensitiven Feldnamen.
-
Zitat von wti
Bei kurzen SQL-Namen arbeitet der RENAME nicht wie erwartet: ...
Dann sind wohl deine Erwartungen zu hoch:
DB2 Universal Database for iSeries SQL Reference - RENAME
Und Vorsicht bei Systemnamen in doppelten Anführungszeichen:
CL concepts > Objects > Object naming rules > Names (*NAME) - *NAME (basic name in quoted form)
Similar Threads
-
By a.wojcik in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 26-01-16, 07:49
-
By harbir in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 12-03-14, 15:34
-
By JP in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 07-12-13, 11:01
-
By Gimli in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 31-03-03, 10:10
-
By infomio in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 10-07-02, 14:43
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