我正在使用asp.net core 3.1和ef core以及DB2AS400数据库。我创建了一个表值函数,如下所示
CREATE FUNCTION ABELIBLE.TVFBOEGETSHIPMENTS (
STARTDATE DATE ,
ENDDATE DATE ,
ADDRESSCODE CHAR(9) )
RETURNS TABLE (
"ID" INTEGER ,
JOBNUMBER CHAR(9) ,
CUSTOMERREFERENCE CHAR(18) ,
CONSIGNEENAME CHAR(30) ,
CREATEDDATE DATE ,
AIRPORTOFORIGIN CHAR(3) ,
AIRPORTOFARRIVAL CHAR(3) ,
AIRPORTOFDESTINATION CHAR(3) ,
COUNTRYOFDESTINATION CHAR(3) ,
ADDRESSCODE CHAR(9) ,
CONSIGNMENTNUMBER CHAR(25) )
LANGUAGE SQL
SPECIFIC ABELIBLE.TVFBOEGETSHIPMENTS
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DECRESULT = (31, 31, 00) ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
RETURN
SELECT
ROW_NUMBER ( ) OVER ( ORDER BY EMJOBN DESC ) ,
A . EMJOBN ,
A . EMCREF ,
A . EMOSNM ,
DATE ( TIMESTAMP_FORMAT ( DIGITS ( A . EMCRTD ) , 'DDMMYY' ) ) ,
A . EMAOFO ,
A . EMAOFA ,
A . EMAOFD ,
A . EMCOFD ,
A . EMUKCD ,
A . EMRPRT
FROM DTALIBLE . EMASTER A WHERE A . EMPSFT = 'Y' AND A . EMUKCD = ADDRESSCODE AND
( DATE ( TIMESTAMP_FORMAT ( DIGITS ( A . EMCRTD ) , 'DDMMYY' ) ) >= STARTDATE AND DATE ( TIMESTAMP_FORMAT ( DIGITS ( A . EMCRTD ) , 'DDMMYY' ) ) <= ENDDATE ) ;
我可以使用以下语句在dbeaver中获得此函数的结果
SELECT * FROM TABLE(ABELIBLE.TVFBOEGETSHIPMENTS('2020-05-27', '2020-05-27','MUL0044'))
但是我无法从ef core调用函数。我打电话的代码是这样的:
这是我得到的错误:
非常感谢您的帮助。
2条答案
按热度按时间u5i3ibmn1#
请不要使用包含纯文本的图像。原因是图像内容不可搜索,图像很难引用。
相反,只需将代码或错误消息的纯文本复制到问题中。
第一个图像显示代码中的查询(语法不正确)与给定给dbeaver的查询(语法正确)不同。先解决这个问题。
db2服务器通过抛出sql0104n来拒绝不正确的语法。您可以在db2-for-i知识中心中查找这些代码。如果你花时间研究它们,这些解释通常会有帮助。
hts6caw32#
下面的工作与语句的格式有关。