2012-07-18 71 views
1

善良的人替換功能,JdbcOdbc驅動程序無法找到在MS Access

我想通過我的Java程序執行對MS Access數據庫的SQL查詢。該程序使用JdbcOdbc驅動程序。該查詢包含內置的替換功能。它看起來是這樣的:

SELECT Replace(first_name, '-', ' ') AS f_name FROM patient WHERE.... 

程序失敗,出現以下錯誤:「[微軟] [ODBC Microsoft Access驅動程序]未定義函數表達式‘替換’。」

這怎麼可能?其他功能,如LCase和Trim的工作很好。另外,當直接在後端執行時,替換功能可以正常工作。

回答

1

您的查詢不能使用Replace()函數,除非它在Access會話中運行。

這種情況與您嘗試使用用戶定義函數的情況相同。數據庫引擎只能在Access表達式服務的幫助下使用這些表達式服務,該服務僅在Access會話中可用。

+0

Thanks @HansUp。我對UDF並不感到驚訝。實際上,在我發現UDF不受支持後,我最終使用了Replace作爲長解決方法的一部分。但是,如何在我的問題中提到的其他內置功能如何工作?在進一步的研究中,Jet Engine在外部訪問時的默認配置似乎是在Sandbox模式下運行。在這種模式下,並不是所有的功能都支持,並且替換似乎是其中之一。我改變了註冊表中的默認設置,但沒有發現任何區別。我想知道爲什麼。請參閱下面評論中的文章鏈接。 – 2012-07-19 06:02:21

+0

http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B294698&Product=acc – 2012-07-19 06:02:36

+0

我沒有提到沙箱,因爲我不太瞭解細節,我不會建議任何人改變沙箱模式,我從來沒有嘗試過,所以不知道可能涉及哪些陷阱。總之,我無法幫助你。 – HansUp 2012-07-19 06:09:55

相關問題