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]