Forum
Gregor wrote: Liebe Forumsmitglieder,
ich biete auf http://www.leipelt.de ein OpenSource Tool (für Windows/Linux) für DB2 an.
Im Moment bin ich dabei, ein paar neue Funktionen einzubauen. Ich habe keinen Zugriff auf DB2 für z/OS, OS390 und andere,
möchte aber, dass mein Tool auch mit diesen Versionen funktioniert.
Und da bräuchte ich ein wenig Hilfe.Ich suche die äquivalenten SQL Befehle für die folgenden Befehle, die auf Win/Linux Systemen so lauten:
(SEL ECT im folgenden mit blank, sonst "interner Verarbeitungsfehler" beim posten…)1. Finde heraus, ob eine Tabelle einen Primary Key hat:
 SEL ECT COLNAMES FROM
 SYSCAT.INDEXES
 WHERE TABSCHEMA=’xy‘ AND TABNAME=’abc‘ AND UNIQUERULE=’P’" SEL ECT creator, name FROM SYSIBM.SYSINDEXES
WHERE TBCREATOR = ‚xy‘ AND TBNAME = ‚abc‘ AND UNIQUERULE = ‚P‘;
Ergebnis Indexname des Prim.Key2. Finde die Spaltennamen und -typen einer Tabelle:
 sel ect colname, typename, length, scale, nulls, default, logged, compact, identity, generated
 from syscat.columns
 where tabschema = ‚xy‘ and tabname =’abc‘ order by colno"SEL ECT name, coltype, length, scale, nulls, default, createdts FROM SYSIBM.SYSCOLUMNS
WHERE TBCREATOR = ‚xy‘ AND TBNAME = ‚abc‘ ORDER BY COLNO;Mit logged,compact,identity kann ich nichts anfangen.
3. Finde die Foreign Keys einer Tabelle:
 sel ect reftabschema, reftabname, deleterule, updaterule, fk_colnames, pk_colnames
 from syscat.references
 where tabschema = ‚xy‘ and tabname =’abc’"SEL ECT relname, colname, colno, colseq FROM SYSIBM.SYSFOREIGNKEYS
WHERE CREATOR = ‚xy‘ AND TBNAME = ‚abc‘;4. Ermittle die Triggernamen:
 sel ect trigschema, trigname
 from syscat.triggers Â
 where tabschema = ‚xy‘ and tabname =’abc’"SEL ECT schema, name FROM SYSIBM.SYSTRIGGERS
WHERE TBOWNER = ‚xy‘ AND TBNAME = ‚abc‘;5. Lese den eigentlichen Trigger (als CLOB) mit dem obigen Triggernamen
 Sel ect text
 from syscat.triggers
 where trigschema=’trigschema‘ and trigname = ‚trigname’"SEL ECT text FROM SYSIBM.SYSTRIGGERS
WHERE SCHEMA = ‚trigschema‘ AND NAME = ‚trigname‘;Je nach System lauten die Tabellen- bzw. Spaltennamen u.U. anders.
Es wäre sehr nett, wenn mir jemand diese Befehle für nicht-Win/Lin Systeme "übersetzen" könnte (und dazu schreibt,
für welches System die Übersetzung gilt).Das gilt alles für DB2 Version 8!
Vielen Dank
Gregor
Schöne Grüße
dobo
😀