最近升級 SQL Server 2019 , 也安裝了 Oracle ODAC 32/64 bit driver , 發現 SSRS 2019 連接 Oracle 11gR2 資料庫時 , 只能使用 OLEDB 的連線方式 , 無法使用原本的 Oracle 原生 driver 的連線方式 , OLEDB 連線會有 2 個問題 :
SSRS 2019 的 DataSet 不能使用註解 , 這個問題不大 , 就刪除註解吧 , 但程式就很難閱讀
SSRS 2019 的 DataSet 的同一個 SQL 內不能使用 2 次同樣的參數名稱 , 例如 :
select *
from table1
where org_id = :p_org_id
union all
select *
from table2
where org_id = :p_org_id
會出現 ORA-01008: not all variables bound 的錯誤
我找遍了 Goolge 大神 , 這個原因是 OLEDB 不能使用具名參數 , 所以必須將上述兩個 :p_org_id 改為問號 ? , 然後到 DataSet 的參數頁簽將問號 ? 再 bind 到原本的 :p_org_id 參數
這樣實在很麻煩 , 而且在 SQL 寫了一堆問號當參數時在很爛 , 請問大家有沒有更好的解法呢 ?
註 : 但如果 DataSet 的同一個 SQL 內的多個具名參數名稱不相同則無此問題