我已经为我的xml发布者创建了一个xml文件作为数据定义模板。数据模板有两个参数,即date(startdate,enddate)。但是这个输入日期应该转换为YYYYWW格式,以便在我的SQL语句中我可以使用开始日期和结束日期来检查给定日期(以YYYYWW)格式是否在startdate和enddate之间。
这是我的数据模板xml中的参数:
<parameters>
<parameter name="P_org_id" datatype="number"/>
<parameter name="P_Account_Number" dataType="number"/>
<parameter name="P_Start_week" dataType="date"/>
<parameter name="P_End_week" dataType="date"/>
</parameters>
这是我必须使用参数值的sql语句部分
select x,y,......z
from apps.XXONT_M545_CUST_COVG_DATA cd
where
cust_org =:P_org_id
and revision_week between :P_Start_week and :P_End_week
and account_number = NVL(:P_Account_Number, account_number)
and hold_yn = 'Y'
由于您使用的是NVL(),我假设这是Oracle SQL。
可以使用TO_CHAR(date, format)
将日期转换为格式化字符串
...
and revision_week between TO_CHAR(:P_Start_week, 'YYYYWW') and TO_CHAR(:P_End_week, 'YYYYWW')
...