-
Trigger und Ladethematik
Guten Morgen Forum,
als DB2 bzw. iSeries anfänger stellen sich mir mehrere Fragen
1. Wie kann ich in einem Before-Insert-Trigger einen künstlichen Primary Key erzeugen(Sequenz habe ich erstellt weiß aber nicht wie ich den Wert ermitteln kann, bei Oracle geht's so, Select SeqName.nextval into VarName from dual, funktioniert aber hier nicht. anschließend im Trigger :NEW.PK_feld := VarName)
2. Wie kann ich Textdateien in eine Tabelle laden(ähnlich Oracle SQL-Loader)?
Wie ihr hier sicher bemerkt werden alle Ora-DB's auf DB2 migriert.
Vielen Dank im voraus für eure Hilfe
Glück auf
HP Kahn
-
Hallo,
ad 1: before insert Trigger dürfen auf DB2 keinen SQL update machen, das wird wohl einen work around brauchen:
entweder external Trigger, oder Auto increment Felder (wie heißt der Typ gleich nochmal - identity?), oder im After insert Trigger machen, aber dann brauchts auch noch eine SQL Function und vom Transaktions Handling ist das eher kritisch.
ad2: CPYFRMIMPF kann sowas ähnliches, wenn es denn überhaupt korrekt funktioniert, was nur bei ausgesuchten Patch Ständen zu stimmen scheint.
mfg
Dieter Bender
 Zitat von HPKahn
Guten Morgen Forum,
als DB2 bzw. iSeries anfänger stellen sich mir mehrere Fragen
1. Wie kann ich in einem Before-Insert-Trigger einen künstlichen Primary Key erzeugen(Sequenz habe ich erstellt weiß aber nicht wie ich den Wert ermitteln kann, bei Oracle geht's so, Select SeqName.nextval into VarName from dual, funktioniert aber hier nicht. anschließend im Trigger :NEW.PK_feld := VarName)
2. Wie kann ich Textdateien in eine Tabelle laden(ähnlich Oracle SQL-Loader)?
Wie ihr hier sicher bemerkt werden alle Ora-DB's auf DB2 migriert.
Vielen Dank im voraus für eure Hilfe
Glück auf
HP Kahn
-
Sequence
Hallo,
die SEQUENCE kann direkt beim Insert-Statement angegeben und eingefügt werden.
Es ist kein Trigger notwendig.
Beispiel:
PHP-Code:
CREATE SEQUENCE MySequence
START WITH 10 INCREMENT BY 10
PHP-Code:
INSERT INTO MyTrgTable(MySeq, Col2)
VALUES(NEXT VALUE FOR MySequence, 123 )
Ebenso müsste ein SET-Statement in einem SQL-Before Insert Trigger funktionnieren.
PHP-Code:
Create Trigger MYSchema.MyTrgTable01
Before Insert on MyTrgTable
Referencing NEW ROW as Ins
For Each Row
Mode DB2ROW
BEGIN Atomic
set Ins.MySeq = NEXT VALUE FOR MySequence;
END;
Leider kann ich es nicht ausprobieren, da ich im Moment keinen Zugriff auf eine Maschine mit Release V5R3M0 habe.
Similar Threads
-
By Jenne in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 19-01-07, 09:24
-
By bigmoon in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 14-09-06, 18:26
-
By antvik in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 02-08-06, 18:04
-
By peter.kinne in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 20-04-06, 10:21
-
By Frank Pusch in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 17-05-01, 09:34
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