TurboSQL Guide

CREATE FUNCTION Statement

Previous  Top  Next


Syntax

CREATE FUNCTION function_name([:parameter_name data_type]...) RETURNS data_type AS RETURN expression

CREATE FUNCTION function_name([:parameter_name data_type]...) RETURNS data_type AS BEGIN statement [statement]... END

CREATE FUNCTION function_name([:parameter_name data_type]...) RETURNS data_type AS EXTERNAL NAME [namespace_name.class_name].method_name,assembly_name

Description

A function can be called wherever a scalar value is expected, in select elements, in search conditions and all other kinds of expressions.

namespace_name.class_name refers to a public class in the assembly.

method_name refers to the name of a static public function in the assembly. The function must not be overloaded and the parameters must fit the parameters of the TurboSQL function (see "Exchanging Parameters with .NET  Assemblies").

Samples

CREATE FUNCTION LastChar(:S WCHAR(1024)) RETURNS WCHAR(1) AS
RETURN SUBSTRING(:S FROM CHAR_LENGTH(:s) FOR 1)

CREATE FUNCTION Replicate(:S WCHAR(1024), :C INTEGER)RETURNS WCHAR(1024) AS BEGIN
       DECLARE :I INTEGER
       DECLARE :R WCHAR(1024)
       SET :I = 0
       SET :R = ''
       WHILE :I < :C BEGIN
               SET :R = :R + :S
               SET :I = :I + 1
       END
       RETURN :R
END

CREATE FUNCTION CubicRoot(:X FLOAT) RETURNS FLOAT AS
EXTERNAL NAME [MathRoutines.TurboMath].CubicRoot,MathRoutines

Compatibility Information

This statement is only available in TurboDB Managed.