2014-02-28 57 views
1

我正在使用SSRS 2005針對Oracle數據源運行。我用這個簡單的查詢Srsrs on 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提示我該參數的值,我想2014年1月1日,01-JAN-2014,2014年1月1日這兩個參數,但都得到了這個錯誤:

無法將類型System.String綁定爲Blob。 (System.Data.OracleClient)

在oracle中order_number是NUNBER和ordered_date是DATE。

不知道這是一個pl sql的東西或SSRS的東西?

+0

將會'to_date(:start,'DD-MON-YYYY')'有區別嗎? –

+0

@OracleUser沒有我仍然有無效的主機/綁定變量名稱或無法將類型System.String作爲Blob錯誤進行綁定。 – thotwielder

回答

4

不確定第二個錯誤是否僅僅是初始錯誤的後續行爲,但第一個錯誤是因爲start is a reserved word in Oracle;你會得到一個ORA-01745從此在SQL * Plus或SQL Developer中太:

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'),以便知道輸入變量的格式 - 這將消失。

我只能想象,這將解決第二個錯誤,我猜是來自參數在這個奇怪的狀態。

+0

謝謝你是這個問題。 – thotwielder