Ssrs on Oracle date参数

时间:2014-02-28 15:50:18

标签: oracle reporting-services

我正在使用SSRS 2005来运行Oracle数据源。我使用了这个简单的查询

    SELECT order_number FROM apps.oe_order_headers_all  
    WHERE ordered_date >= :start
    AND ordered_date  < :end + 1
    and rownum = 1

首先我得到了:

ORA-01745:无效的主机/绑定变量名称

我忽略了错误,然后点击刷新(让SSRS确定返回的列和使用的参数)

SSRS提示我输入参数的值,我尝试了01/01/2014,01-JAN-2014,01-01-2014两个参数,但都得到了这个错误:

无法将System.String类型绑定为Blob。 (System.Data.OracleClient的)

order_number是NUNBER,ordered_date是oracle中的DATE。

不确定它是pl sql的东西还是SSRS的东西?

1 个答案:

答案 0 :(得分:4)

不确定第二个错误是否只是初始错误的后续行动,但第一个错误是因为start is a reserved word in Oracle;您将在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_date - 并添加OracleUser建议的显式to_date(:start_date, 'YYYY-MM-DD')to_date(:end_date, 'YYYY-MM-DD'),以便您知道输入变量的格式 - 将会消失

我只能想象这也会解决第二个错误,我猜这是因为参数在那个时候处于奇数状态。