基于Oracle日期参数的Ssrs
我使用SSRS2005来运行Oracle数据源。我使用了这个简单的查询基于Oracle日期参数的Ssrs,oracle,reporting-services,Oracle,Reporting Services,我使用SSRS2005来运行Oracle数据源。我使用了这个简单的查询 SELECT order_number FROM apps.oe_order_headers_all WHERE ordered_date >= :start AND ordered_date < :end + 1 and rownum = 1 从apps.oe\u order\u headers\u all中选择订单号 其中订购日期>=:开始 和订购日期
SELECT order_number FROM apps.oe_order_headers_all
WHERE ordered_date >= :start
AND ordered_date < :end + 1
and rownum = 1
从apps.oe\u order\u headers\u all中选择订单号
其中订购日期>=:开始
和订购日期<:结束+1
和rownum=1
首先,我得到:
ORA-01745:无效的主机/绑定变量名
我忽略错误并单击刷新(让SSR确定返回的列和使用的参数)
SSRS提示我输入参数值,我尝试了2014年1月1日、2014年1月1日、2014年1月1日两个参数,但都出现了以下错误:
无法将类型System.String绑定为Blob。(System.Data.OracleClient)
在oracle中,订单号为NUNBER,订单日期为date
不确定是pl sql还是SSRS?不确定第二个错误是否只是初始错误的后续,但第一个错误是因为;在SQL*Plus或SQL Developer中,您也可以从中获得ORA-01745:
SQL> var start varchar2(10);
SQL> select :start from dual;
select :start from dual
*
ERROR at line 1:
ORA-01745: invalid host/bind variable name
但允许使用end
。如果您将绑定变量名更改为,比如说,:start\u date
,并将OracleUser建议的显式添加到\u date(:start\u date,'yyyyy-MM-DD')
)和到\u date(:end\u date,'yyyyy-MM-DD')
,这样您就可以知道在其中输入变量的格式了,这将消失
我只能想象这也会解决第二个错误,我猜这是因为参数当时处于奇数状态。不确定第二个错误是否只是初始错误的后续,但第一个错误是因为;在SQL*Plus或SQL Developer中,您也可以从中获得ORA-01745:
SQL> var start varchar2(10);
SQL> select :start from dual;
select :start from dual
*
ERROR at line 1:
ORA-01745: invalid host/bind variable name
但允许使用end
。如果您将绑定变量名更改为,比如说,:start\u date
,并将OracleUser建议的显式添加到\u date(:start\u date,'yyyyy-MM-DD')
)和到\u date(:end\u date,'yyyyy-MM-DD')
,这样您就可以知道在其中输入变量的格式了,这将消失
我只能想象这也会解决第二个错误,我猜这是由于参数当时处于奇数状态。是否会
到日期(:start,'DD-MON-YYYY')
起作用?@OracleUser否我仍然得到无效的主机/绑定变量名,或者无法将type System.String绑定为Blob error.will到日期(:start,'DD-MON-YYYY')
有什么区别?@OracleUser否我仍然得到无效的主机/绑定变量名或无法将类型System.String绑定为Blob错误。谢谢,这就是问题所在。谢谢,这就是问题所在。