MaxDB 7.6.00.16

CREATE FUNCTION KASSA.FIO(
   p_cartnum integer) returns varchar AS
VAR
   f varchar(200);
BEGIN
   TRY
       SELECT pats.fam from gis.pats where cartnum=:p_cartnum;
       FETCH INTO :f;
   CATCH
       IF $rc = 100 THEN
           return null
       ELSE
           STOP(-20013, $errmsg);
   return f;
END;
//
CREATE DBPROC KASSA.TEST(
   IN v_date date)
RETURNS CURSOR AS
BEGIN
   TRY
       DECLARE :$CURSOR CURSOR FOR
           SELECT id,kassa.fio(1) fio
           FROM gis.cassaprihod c
           WHERE c.orderdate=:v_date
           UNION
           SELECT id, null fio
           FROM gis.cassarashod c
           where c.orderdate=:v_date;
   CATCH
       IF $rc <> 100 THEN
           STOP($rc, $errmsg);
END;



General error;-20013 -6003 Duplicate result table name




Other variant of the function

CREATE FUNCTION KASSA.FIO(
   p_cartnum integer) returns varchar AS
VAR
   f varchar(200);
BEGIN
   TRY
SELECT pats.fam || ' ' || pats.name|| ' ' || value(pats.nname,'') into :f
       from gis.pats where cartnum=:p_cartnum;
   CATCH
       IF $rc = 100 THEN
           return null
       ELSE
           STOP(-20013, $errmsg);
   return f;
END;


Numeric value out of range;-3019 POS(157) Invalid exponent



and the third variant works well

CREATE FUNCTION KASSA.FIO(
   p_cartnum integer) returns varchar AS
VAR
   f varchar(200);
BEGIN
   TRY
       SELECT pats.fam || ' ' || pats.name into :f
       from gis.pats where cartnum=:p_cartnum;
   CATCH
       IF $rc = 100 THEN
           return null
       ELSE
           STOP(-20013, $errmsg);
   return f;
END;


Fields fam,name,nname all are VARCHAR(20) UNICODE


--
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to