Can't create an Informix stored procedure using the ISQL command?

I had a problem creating this stored procedure in IBM Informix Dynamic Server Version 10.00.FC9 (see Jonathan Leffler for this post here ) using the 'isql' command from Informix SQL.

I get a (char error message for each of its two examples aboutRETURNING CHAR(8)

ex. 1:

CREATE PROCEDURE ampm_time(tm SMALLINT) RETURNING CHAR(8);
    DEFINE hh SMALLINT;
    DEFINE mm SMALLINT;
    DEFINE am SMALLINT;
    DEFINE m3 CHAR(3);
    DEFINE a3 CHAR(3);
    LET hh = MOD(tm / 100 + 11, 12) + 1;
    LET mm = MOD(tm, 100) + 100;
    LET am = MOD(tm / 1200, 2);
    LET m3 = mm;
    IF am = 0
    THEN LET a3 = ' am';
    ELSE LET a3 = ' pm';
    END IF;
    RETURN (hh || ':' || m3[2,3] || a3);
END PROCEDURE;

ex. 2:

CREATE PROCEDURE ampm_time(tm SMALLINT) RETURNING CHAR(8);
    DEFINE i2 SMALLINT;
    DEFINE hh SMALLINT;
    DEFINE mm SMALLINT;
    DEFINE am SMALLINT;
    DEFINE m3 CHAR(3);
    DEFINE a3 CHAR(3);
    LET i2 = tm / 100;
    LET hh = MOD(i2 + 11, 12) + 1;
    LET mm = MOD(tm, 100) + 100;
    LET i2 = tm / 1200;
    LET am = MOD(i2, 2);
    LET m3 = mm;
    IF am = 0
    THEN LET a3 = ' am';
    ELSE LET a3 = ' pm';
    END IF;
    RETURN (hh || ':' || m3[2,3] || a3);
END PROCEDURE;

They were designed by Jonathan Leffler (Informix Extraordinary Wizard) to solve the question I asked in a related post. The supposed return is to convert the INT data type holding wartime in a 2:30 pm type format.

+2
1

- DB-Access vs ISQL.

ISQL , SQL - , Informix OnLine 4.10 ( INFORMIX-OnLine 4.10). , , , , - , SQL , .

:

  • DB-Access ISQL .
  • SQLCMD IIUG .
  • "mkproc" SQLCMD .

DB-Access (aka dbaccess - $INFORMIXDIR/bin, ).

+2

All Articles