UDF-Beispiele

UDF-Beispiel #1

Dies ist eine einfache Beispiel-UDF, die zwei Zahlen addiert und das Ergebnis zurückgibt.
function evaluate(a,b)
return a + b
end

function getName()
return "adder"
end

function getType()
return "udf"
end

function getArgs()
args={}
args[1] = { "a", double }
args[2] = { "b", double }
return args

end

function getResult()
return double

end

UDF-Beispiel #2

Diese UDF nimmt eine Zeichenfolge und zählt die Anzahl der eindeutigen Zeichen, die die Zeichenfolge enthält, und gibt das Ergebnis zurück.
function evaluate( str )
count = 0
chars = {}
for ch in string.gmatch(str, "." ) do
if chars[ch] == null then
chars[ch] = 1
count = count + 1
end

end

return count
end

function getType()
return "UDF"
end

function getName()
return "unique_chars"
end

function getArgs()
args={}
args[1] = { "str", varchar(any) }
return args
end

function getResult()
return integer
end

UDF Example #3 (calculateSize)
In manchen Situationen kann es sehr nützlich sein, eine dynamische Ausgabegröße für ein VARCHAR- oder NUMERIC-Ergebnis zu unterstützen. Dieses Beispiel zeigt die Verwendung der calculateSize, um die Größe einer VARCHAR-Ergebnisspalte dynamisch als die Summe der Länge der beiden VARCHAR-Argumente festzulegen.
function evaluate(s1, s2 )
return s1 || s2
end

function calculateSize( args )
return args[1].length + args[2].length
end

function getType()
return "UDF"
end

function getName()
return "concat"

end

function getArgs()
return {{ "", varchar("any") },
{ "", varchar("any") }}
end

function getResult()
return varchar(any)
end