2016-12-13 4 views
0

Ich bin eine Native Stored Procedure .. wo eines der Felder durch die Kombination (Verkettung) 5 Werte abgeleitet wird. 3 dieser 5 Werte sind Zeichenfelder und 2 sind gepackte Dezimalzahlen. Ich muss sie in 1 Feld kombinieren, bevor ich in die Tabelle schreibe.Konvertieren einer numerischen in gepackt-Dezimal in Stored Procedure

Ich bin mir nicht sicher, wie kann ich eine Zahl in gepackte Dezimalzahl (Comp-3-Äquivalent von COBOL) in einem SP konvertieren.

Ich versuchte DEC() Funktion, aber es gibt keine erwarteten Ergebnisse.

Ich bin mit DB2 V11

Bitte lassen Sie mich wissen, ob es noch andere Methoden sind ..

Dank ..

+0

Könnten Sie angeben, welche DBMS verwenden Sie? – McNets

+0

IBM DB2 V11 wird verwendet –

+0

Fügen Sie ein Tag hinzu oder fügen Sie es zu Ihrer Frage hinzu. – McNets

Antwort

0
with tmp as 
(
    select 
    case when 
    case when trim(ifnull(valchar1, ''))='' then '0' else trim(valchar1) end || 
    case when trim(ifnull(valchar2, ''))='' then '0' else trim(valchar2) end || 
    case when trim(ifnull(valchar3, ''))='' then '0' else trim(valchar3) end || 
    valdec1 || valdec2 as NewVal 
    from your table 
) 
select 
cast(case NewVal ='' then null else NewVal end as dec(15, 2)) as NewvvalDec 
from tmp