Hello,
The procedure below is not working and I don't understand why.
Can someone help me please ?
when I call the procedure I'll get the message transaction rolled back by an internal error: wrong number of arguments
The problem is in using the parameter in the where part of the query.
DROP PROCEDURE customer_dashboard;
CREATE PROCEDURE customer_dashboard(IN CardCode NVARCHAR(20)) LANGUAGE SQLSCRIPT AS
BEGIN
Declare jaar1 NVARCHAR(4);
Declare jaar2 NVARCHAR(4);
Declare jaar3 NVARCHAR(4);
Declare jaar4 NVARCHAR(4);
Declare sqlstring NVARCHAR(2500);
jaar1 := YEAR(NOW());
jaar2 := YEAR(NOW()) - 1;
jaar3 := YEAR(NOW()) - 2;
jaar4 := YEAR(NOW()) - 3;
CALL pr_drop_table (UPPER('temptbl'));
CREATE COLUMN TABLE temptbl AS (SELECT t0."DocNum", t0."CardCode", t3."ItmsGrpNam", YEAR(t0."DocDate") AS "Jaar", CAST((t1."LineTotal" * ((100 - t0."DiscPrcnt") / 100)) AS real)
AS "LineTotal" FROM ORDR t0 INNER JOIN RDR1 t1 ON t0."DocEntry" = t1."DocEntry" INNER JOIN OITM t2 ON t2."ItemCode" = t1."ItemCode"
LEFT OUTER JOIN OITB t3 ON t3."ItmsGrpCod" = t2."ItmsGrpCod" WHERE t0."CardCode" = :CardCode );
SELECT * FROM temptbl;
--select :sCardCode from dummy;
END
DROP PROCEDURE customer_dashboard;
CREATE PROCEDURE customer_dashboard(IN CardCode NVARCHAR(20)) LANGUAGE SQLSCRIPT AS
BEGIN
Declare jaar1 NVARCHAR(4);
Declare jaar2 NVARCHAR(4);
Declare jaar3 NVARCHAR(4);
Declare jaar4 NVARCHAR(4);
Declare sqlstring NVARCHAR(2500);
jaar1 := YEAR(NOW());
jaar2 := YEAR(NOW()) - 1;
jaar3 := YEAR(NOW()) - 2;
jaar4 := YEAR(NOW()) - 3;
CALL pr_drop_table (UPPER('temptbl'));
CREATE COLUMN TABLE temptbl AS (SELECT t0."DocNum", t0."CardCode", t3."ItmsGrpNam", YEAR(t0."DocDate") AS "Jaar", CAST((t1."LineTotal" * ((100 - t0."DiscPrcnt") / 100)) AS real)
AS "LineTotal" FROM ORDR t0 INNER JOIN RDR1 t1 ON t0."DocEntry" = t1."DocEntry" INNER JOIN OITM t2 ON t2."ItemCode" = t1."ItemCode"
LEFT OUTER JOIN OITB t3 ON t3."ItmsGrpCod" = t2."ItmsGrpCod" WHERE t0."CardCode" = :CardCode );
SELECT * FROM temptbl;
END