Hallo *all,
ich habe hier ein tolles Kaba Benzing Terminal welches mir die Daten in eine Datei stellt.
Leider ist bei einem dieser Terminal der Parameter falsch gesetzt und der Wert des Schlüssel ist zu kurz.
Da bei Kaba Benzig die letzten Dinosaurierer die sich mit AS/400 und Bcomm auskannten schon vor 10 Jahren gestorben sind, muß ich jetzt rumdoktorn.
Ein Lösungansatz von mir ist es einen SQL-Trigger zu erstellen der mir beim Insert prüft ob der Schlüsselwert lang genug ist.

Dateiaufbau:

create table testdat (BBFINR char(03), BBBLOC char(250))

Datensatz Alt:
insert into testdat values('001',
'01ABC0B1120071609210020014<000260')

Datensatz Neu:

insert into testdat values('001',
'01ABC0B1120071609210020014<0000260') <- Eine Null mehr

Trigger Experiment:

Code:
create trigger Schluessel                                
       after update of bbbloc  on testdat         
       referencing old   as old_testdat                    
                       new as new_testdat                    
       for each row mode db2sql                          
           when (substr(old_testdat.bbbloc, 34, 1) = ' ')
           begin atomic                                  
              bbbloc = 'Neu';                            
           end
Später soll statt Neu natürlich der zusammengesetzte String da stehen.

Ich habe mir das Buch "iSeriesDB2 Universal Database for iSeries SQL Reference" genommen, werde aber leider aus den Beispielen nicht schlau.

Wer kann mir denn bitte die richtige Syntax sagen damit im Datensatz später der Wert so da steht '01ABC0B1120071609210020014<0000260'

Für Hinweise die zur Ergreifung der Fehler finden wäre ich dankbar.

GG 3970