2013-03-20 46 views
1

我正在使用OracleCommand類從C#查詢Oracle數據庫(版本9或10)。OracleCommand.CommandText中的查詢文本是否有最大長度?

String query = GetQuery(); //may produce quite lenghty queries... 
OracleCommand command = connection.CreateCommand(); 
command.CommandText = query; 
command.CommandType = CommandType.Text; 

這個類是在Oracle.DataAccess.Client命名空間Oracle.DataAccess.dll(版本 「10.2.0.100」),這是Oracle,而不是微軟。據我瞭解,這是相當古老的,但我不喜歡改變,如果沒有必要的話。

我的問題是,這個查詢字符串是否有最大長度?該類或底層Oracle數據庫是否有限制?

注意:我熟悉Microsoft SQL服務器,但對Oracle來說很新。 我也一直在尋找文檔,但Google這次對這個細節幫助不大。

+1

在11g中,我看到了幾千行長的查詢(不是我寫的 - 寫這些的人早已不在,但正如莎士比亞所說的那樣,「男人在他們後面生活的邪惡......」 )。換句話說 - 極限(11g)非常大,如果遇到它,你做了一些非常非常錯誤的事情。 – 2013-03-20 11:20:46

回答

2

Oracle9i Database Reference狀態上的SQL語句長度的限制:

64千最大;特別是工具可以並處下限

Similar page on 11g沒有聲明精確限制,但:

上的SQL語句可以持續多久的限制取決於許多因素,包括數據庫配置,磁盤空間和內存

我相信我們可以肯定的是10和11 v oracle數據庫支持64k查詢。

OracleCommand類的文檔不會對CommandText長度引入任何例外或約束。

+0

感謝您幫助我解決這個問題! – Marcel 2013-03-20 11:40:01