Sql Teradata中的参数查询-Am获取失败此错误消息[3639:22018]将字节数据与其他类型进行比较是非法的

Sql Teradata中的参数查询-Am获取失败此错误消息[3639:22018]将字节数据与其他类型进行比较是非法的,sql,teradata,Sql,Teradata,我是Teradata的新手,在代码中使用参数查询时遇到了问题。下面是我的代码 SELECT SQS_DATE_LKP.SQS_DATE, SQS_DATE_LKP.DATE_FMT, SQS_DATE_LKP.WEEKDAY_NO, SQS_DATE_LKP.WEEKDAY_NAME, SUBSTR (SQS_DATE_LKP.FISC_WEEK,7,2) AS FISCAL_WEEK, SQS_DATE_LKP.FISC_PERIOD FROM SPE_SEM_VW.SQS_DATE_LKP

我是Teradata的新手,在代码中使用参数查询时遇到了问题。下面是我的代码

SELECT SQS_DATE_LKP.SQS_DATE,
SQS_DATE_LKP.DATE_FMT,
SQS_DATE_LKP.WEEKDAY_NO,
SQS_DATE_LKP.WEEKDAY_NAME,
SUBSTR (SQS_DATE_LKP.FISC_WEEK,7,2) AS FISCAL_WEEK,
SQS_DATE_LKP.FISC_PERIOD
FROM SPE_SEM_VW.SQS_DATE_LKP
WHERE FISCAL_WEEK=?
;
首先,我在我的FISC_WEEK专栏中使用了substring,因为初始专栏的格式是(2021-W34),我只对value(34)感兴趣,所以我使用了substring来去掉34之前的所有内容。接下来,我使用(?)作为传入参数的一种方式,但当我执行查询时,它会给我这个错误“作为单个语句执行”。失败[3639:22018]将字节数据与其他类型进行比较是非法的'


我以前尝试过在不使用子字符串的情况下运行查询,但它工作得很好,但是这不是我想要的,因为缺少子字符串需要我在运行查询时出现的弹出表中输入“2021-W34”。我的目标是,当我运行查询并弹出参数表时,我希望能够只输入值34,并拥有与第34周对应的所有记录。任何帮助都将不胜感激。谢谢

将SUBSTR应用于字符字段会产生一个VARCHAR,因此无论客户机软件提示您输入值是什么,都会告诉数据库值
34
是字节数据类型(或者可能没有设置类型。如果用引号输入
'34'
,可能会起作用。您可以将SUBSTR转换为整数或SMALLINT类型以进行数值比较,但如果传入参数仍设置为BYTE,则这将无济于事。@Fred我尝试用引号输入34,但也没有帮助。我想我必须使用原始列不使用SUBSTR的名称