UDF – Create Function endet mit SQL Code -199
- Dieses Thema hat 2 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 13 Jahre, 10 Monaten von
Anonym.
-
AuthorPosts
-
30. Oktober 2009 um 19:16 Uhr #4054
AnonymInaktiv[Im Namen von User "Andreas":]
2. November 2009 um 7:06 Uhr #4219
AnonymInaktivverschiedene incompatible Datentypen zu joinen ist immer performancefressend. Du kannst versuchen, den Datentyp in einem nested S ELECT zu ändern und dann erst zu joinen.
S ELECT … from
( S ELECT benötigte spalten, right(‚000…‘ !! rtrim … ) as joincol from table1 )
inner join table2
ON joincol = RkiV11_LANR …Auch D igits setzt führende Nullen voran. Prüf doch mal, ob Du nicht
statt R ight(‚000000000‘ !! R trim(CaST(RtnV08_BEtrID AS CHAR(9))),9) nicht einfach
Digits(RtnV08_BetRID) schreiben kannst.DIe UDF erlaubt keinen begin atomic / end, sondern nur einen Return – Block.
Sowas sollte funktionieren:
c reate function fuINIT ( wert varchar(80),zeichen varchar(1),
  lng int, richtung varchar(1))                Â
returns varchar(100)Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
deterministic no external action contains sql        Â
return                                  Â
case when ( richtung = ‚H‘ )Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
   then wert concat repeat(zeichen,lng)           Â
   else wert                             Â
end;Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
end #    ÂDu nennst Deine Variable übrigens einmal LEN und einmal LNG.                               Â
2. November 2009 um 12:16 Uhr #4341
AnonymInaktivBesten Dank !
Die Digits-Funktion ist wesentlich performanter und das Anlegen einer UDF klappt nun auch.
-
AuthorPosts
You must be logged in to reply to this topic.