PDA

View Full Version : Nullwert ???



FNeurieser
23-11-12, 08:44
Hallo allerseits,

wieder einmal eine Frage an die Gemeinschaft. Ich habe folgendes SQL-Statement mit dem ich das Feld LIFUID in der Datei RWLIEFP mit dem Wert aus dem Feld ATTAX der Datei ATAXNO befüllen will.
Das Feld ATTAX hat eine Länge von 50, das Feld LIFUID eine Länge von 15. Mit folgendem SQL-Statement erhalte ich die Fehlermeldung, dass NULLWERTE für Spalte oder Variable LIFUID nicht zulässig sind. Ich habe aber keine Nullwerte, oder?



update rwlex305/rwliefp
set lifuid =
(select substr(attax, 1, 15) from dcwd/ataxno
where rwliefp.lilikrkto = atanum
and attax <> ' ' and atagr = '305')
where lifuid = ' '

Fuerchau
23-11-12, 08:47
Aber nicht für alle Daten hast du Werte:

update rwlex305/rwliefp
set lifuid =
(select substr(attax, 1, 15) from dcwd/ataxno
where rwliefp.lilikrkto = atanum
and attax <> ' ' and atagr = '305')
where lifuid = ' '
and exists (select * from dcwd/ataxno
where rwliefp.lilikrkto = atanum )

FNeurieser
23-11-12, 08:51
Danke für die rasche Antwort,

aber trotzdem bekomme ich dieselbe Meldung !?!

harbir
23-11-12, 09:05
update rwlex305/rwliefp
set lifuid =
(select substr(attax, 1, 15) from dcwd/ataxno
where rwliefp.lilikrkto = atanum
and attax <> ' ' and atagr = '305')
where lifuid = ' '
and exists (select * from dcwd/ataxno
where rwliefp.lilikrkto = atanum
and attax <> ' ' and atagr = '305')

andreaspr@aon.at
23-11-12, 09:21
update rwlex305/rwliefp
set lifuid =
Coalesce ((select substr(attax, 1, 15) from dcwd/ataxno
where rwliefp.lilikrkto = atanum
and attax <> ' ' and atagr = '305'), LIFUID)
where lifuid = ' '

Damit ersparrst du dir das zweite Select.

Ob jedoch das zweite Select besser ist als für jeden Satz immer ein Update zu machen, hängt natürlich von den Daten ab.

lg Andreas