2008-10-20 40 views
1

我使用的排序規則與我的操作系統語言不同。我正在使用ODBC驅動程序訪問數據庫。當我準備一個語句(例如「select * from x where =?」)時,涉及到數據庫排序規則支持的特殊非ASCII字符,我在查找包含字符的數據行。當我直接用sql字符串中的參數執行select時,找不到數據行。使用Oracle ODBC準備與直接語句的差異

回答

1

純粹的猜測我的部分,但它可能是因爲您的客戶端計算機沒有編碼的SQL字符串與正確寫入它的參數。我認爲如果您的客戶端設置爲與數據庫整理不同的區域設置,則包含發送到Oracle的select語句的字符數組將包含原始時髦字符所在的「不正確」字節 - Oracle會將其解釋爲某些除最初發送的字符外的其他字符(導致找不到該行)。

是否有任何理由不能只使用參數化方法(因爲它工作正常)?

+0

最後,我必須使用參數化方法來實現查詢,我只是想知道是否有快速修復。謝謝! – vividos 2008-10-20 13:51:32