Hello,
   I'm using MaxDb version 7.5.01.00 and defining a function that has a parameter 
VARCHAR(20) type.
When I create the function (in INTERNAL mode) as follow,

    CREATE FUNCTION TEST (IN_OPERATOR VARCHAR(20)) RETURNS NUMBER AS
    BEGIN
    SELECT * FROM OPERATOR WHERE OPERATOR.K_OPERATOR = :IN_OPERATOR;
    RETURN 1;
    END;

I receive the message:
    General error;-5016 POS(42) Missing delimiter: ).

Deleting the dimension of the parameter IN_OPERATOR in the definition, as follow

    CREATE FUNCTION TEST (IN_OPERATOR VARCHAR) RETURNS NUMBER AS
    BEGIN
    SELECT * FROM OPERATOR WHERE OPERATOR.K_OPERATOR = :IN_OPERATOR;
    RETURN 1;
    END;

I have the error:
    General error;-9000 POS(123) System error: Not yet implemented:parameter of 
unknown size.
It seems that the parameter IN_OPERATOR needs to have a dimension specified, but the 
syntax don't let me do that.
The only way to use this function is to define the parameter IN_OPERATOR as CHAR(20), 
as follow.

    CREATE FUNCTION TEST (IN_OPERATOR CHAR(20)) RETURNS NUMBER AS
    BEGIN
    SELECT * FROM PSF.OPERATOR WHERE OPERATOR.K_OPERATOR = :IN_OPERATOR;
    RETURN 1;
    END;

Though this solution ,sometimes, (with functions more complex) seems to not work, 
giving errors like
    General error;-3999 POS(1) Invalid parameter

Thanks in advance for your responses.
Bye,

*************************************
Matteo Gattoni
ICTeam S.p.A.
Via Azzano S.Paolo, 139
24050 GRASSOBBIO (BG)
Tel.: +39 035 4232156
Fax: +39 035 4522034
e-mail: [EMAIL PROTECTED] 
*************************************

Reply via email to