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