PDA

View Full Version : CREATE SQL FUNCTION



Xanas
23-02-06, 07:40
Hab mir mal folgende SQL Funktion zu testen erstellt, funktioniert auch an sich richtig gut, nur wenn ich ein SQL Statment absetzte in der dieser funktion verwendet wird, kann ich mir ja ne Tasse Kaffee holen gehen(wenn ich welchen trinken würde ;-) ).

Die Frage ist gibts da ein Trick wie man das ganze beschleunigen kann. Außer die Case direkt im Satement an zu geben. Ich brauche es in einer externen Funktion um mein SQL Statment kleiner zu bekommen, hatte getsern eine Meldung SQL-Statment zu lang oder zu komplex. Hab dann mal nachgeschaut, war über 32000 Zeichen lang.



CREATE FUNCTION TEST(x dec(11, 3), y dec(11, 3))
RETURNS dec(11, 3)
LANGUAGE SQL
CONTAINS SQL
NO EXTERNAL ACTION
DETERMINISTIC
RETURN CASE WHEN Y <> 0 THEN
X / Y * 100
ELSE 0
END

Xanas
23-02-06, 10:29
hab geade aber im SQL handbuch gelesen, das das SQL Statement 65535 Zeichen enthalten darf. Also kann das ja nicht mit 32000 und ein paar zerqutschte zu lang sein.
Jedoch kann ich im Embeddedsql für mein SQl Statment kein 65535 langes Alphafeld angeben, da geht maximal nur 32766. Das natürlich sau doof.