2013-05-01 74 views
0

我正在嘗試編寫一個oracle查詢,客戶端已經爲該輸出請求了一個特定的列名稱。很簡單,我使用雙引號使用oracle column alias來編寫查詢。 (請注意,我使用的是引號,因爲恰好發生請求的列名是保留字。)
問題是,當我嘗試使用以下代碼執行查詢時,我收到來自錯誤ORA-00911: invalid character的錯誤:將OracleCommand與列別名一起使用

OracleCommand command = new OracleCommand(sqlquery, connection.Conn); 
dt.Load(command.ExecuteReader()); 

我已經試過的c# string literal(即@「這是‘’測試」「文字」和‘這是\’測試\「文字」)的oracle quote operator和各種迭代。

的查詢是如此簡單,我想做到這一點:

select column1 as "alias1" from dual; 

這時候我直接在Oracle中運行它,但我無法得到它的通過.NET應用程序運行工作。在脫機雙引號和查看調試器中的查詢顯示它已被格式化爲:

select column1 as \"alias1\" from dual; 

看起來很明顯嗎?反斜槓導致Oracle錯誤,但我該如何解決這個問題?

回答

1

哇。過了近一個小時,我發現了一些愚蠢的東西。讓這是對你其他人的警告。 Don't leave the semicolon in the string literal for your query

換句話說,這是好的...

串查詢= @「選擇列1爲‘’alias1」「從雙」;

...但是這是不是...

串查詢= @ 「選擇列1爲 」「 alias1」 「從雙;」;

注意第二個例子中的小增加;

我希望這可以幫助別人節省一些時間。

+0

+1。很好的發現。感謝你的分享。 – Neolisk 2013-05-01 15:11:11

相關問題