HI,
I use a select statement in a function; everything goes if the select statement
doesn't contain an ORDER BY clause.
The error returned is always
Syntax error or access violation;-3014 POS(357) Invalid end of SQL statement.
If I create a Cursor using the same select Statement, it goes well.
For example the following function gives that error.
DROP FUNCTION GET_K_CITY
//
CREATE FUNCTION GET_K_CITY (NAME CHAR(50), CAP CHAR(10), PROV CHAR(10)) RETURNS NUMBER
AS
VAR RES FIXED(6,0);
TRY
IF CAP IS NULL AND PROV IS NULL THEN
BEGIN
TRY
SELECT K_CITY INTO :RES
FROM PSF.CITY
WHERE
CITY.N_CITY = :NAME
AND CITY.D_END IS NULL
ORDER BY K_CITY;
RETURN RES;
CATCH
IF $RC <> 100 THEN STOP($RC, $ERRMSG)
ELSE RETURN NULL;
END;
CATCH
STOP($RC, $ERRMSG);
//
GRANT EXECUTE ON PPORTAL.GET_K_CITY TO PSF
//
GRANT EXECUTE ON PPORTAL.GET_K_CITY TO PPORTAL_PERMISSION
//
Couldn't I use an ORDER BY in a select statement within a function? Only using a
Cursor explicit definition too?
Thanks in advance.
Bye,
Matteo