2013-07-18 91 views
2

我試圖從SQL Server訪問存儲在MySQL上的數據。 我按照在本網站 http://www.sqlservercentral.com/Forums/Topic340912-146-1.aspx我無法在SQL Server中創建鏈接服務器到MySQL

我創造,沒有任何問題的鏈接服務器的指令,但是當我嘗試使用OPENQUERY我收到以下錯誤,選擇數據

Msg 7357, Level 16, State 2, Line 1 
Cannot process the object " 
SELECT 
CAST(t.name AS CHAR) AS team_name, 
CAST(TRIM(REPLACE(CONCAT(su.first_name, " ", su.middle_name , " ", su.last_name), " ", " ")) AS CHAR) AS fullname, 
CAST(su.login_user AS CHAR) AS username, 
CAST(t.billing_department_id AS UNSIGNED) AS billing_dept_id 
FROM my_table.users AS su 
INNER JOIN my_table.teams AS t ON t.team_id = su.team_id 
WHERE client_id = 1 ". The OLE DB provider "MSDASQL" for linked server "SQLSERVER_1" indicates that either the object has no columns or the current user does not have permissions on that object. 

這是我的查詢

SELECT * FROM OPENQUERY(SQLSERVER_1, ' 
SELECT 
CAST(t.name AS CHAR) AS team_name, 
CAST(TRIM(REPLACE(CONCAT(su.first_name, " ", su.middle_name , " ", su.last_name), " ", " ")) AS CHAR) AS fullname, 
CAST(su.login_user AS CHAR) AS username, 
CAST(t.billing_department_id AS UNSIGNED) AS billing_dept_id 
FROM my_table.users AS su 
INNER JOIN my_table.teams AS t ON t.team_id = su.team_id 
WHERE client_id = 1 ') AS su 

有人可以告訴我這有什麼問題,我該怎麼辦才能解決這個錯誤?

謝謝

回答

2

我終於解決了這個問題。解決方案非常愚蠢,但我不能相信它是解決方案。解決方法是簡單地刪除MySQL select和單引號之間的空格。所以它變成'SELECT CAST(t.name AS CHAR)as team_name,........

0

我有同樣的問題,但直到我們升級到MySQL ODBC 5.3驅動程序後。由於我們有很多現有的查詢,我花了一些時間嘗試找到一個修補程序。原來問題是由於使用驅動程序的unicode版本造成的。一旦我切換到ANSI,問題就消失了。

相關問題