2009-07-14 61 views
0

我遇到了一個有趣的問題,即從Oracle 9i遷移到10g的應用程序。
以前,當一個字段包含雙引號時,由於Oracle記錄集將字段封裝在雙引號中,所以我們遇到了問題。Oracle 10g會自動轉義記錄集中的雙引號嗎?

示例: 「field1的」 || 「FIELD2」 || 「字段 」Y「 3」 || 「字段4」

由於移動到10G,相信Oracle客戶端側驅動器被解析雙引號,並用"

替換它們不幸的是,我沒有舊的9i環境來測試我的理論。

你見過類似的行爲嗎,或者有人可以驗證我的理論是否屬實?

+0

Oracle使用雙引號分隔查詢中標識符的名稱,例如,從「EMP」中選擇「EMPNO」。該表達式似乎不是有效SQL的一部分。爲了清晰起見,需要額外的空間:「field1」|| 「field2」|| 「字段」Y「3」|| 「field4」 - 缺少某些東西。 – 2009-07-15 03:12:56

+0

我發佈的是將記錄集返回給VB的查詢結果。 我想確定驅動程序是否正在轉義雙引號。我找不到任何我的應用程序代碼執行此操作的任何證據。 – bitstream 2009-07-15 12:44:33

回答

0

這是一種陌生的行爲。你能檢查你的NLS_xx environment variables嗎?一些NLS_xx變量可以轉換字符,例如NLS_LANG可以將來自客戶端的拉丁字符集的銳化轉換爲服務器上的us2ascii字符集。

要確定發生了什麼,請嘗試trace Net connections。你會看到一切從一邊移動到另一邊。請小心......