Quantcast
Channel: SCN: Message List - SAP HANA and In-Memory Computing
Viewing all articles
Browse latest Browse all 8968

Procedure syntax passing variables

$
0
0

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


Viewing all articles
Browse latest Browse all 8968

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>