我正在使用SQL Server,并且在我的SQL Server中有一个Firebird数据库作为链接服务器。
我正在尝试执行一个从Firebird数据库导入数据的OPENQUERY;
SELECT * FROM OPENQUERY(Workbench, 'SELECT * FROM table_name')我得到了下面的错误。
OLE DB provider "MSDASQL" for linked server "Workbench" returned message "Requested conversion is not supported.".
Msg 7341, Level 16, State 2, Line 4
Cannot get the current row value of column "[MSDASQL].NOTES" from OLE DB provider "MSDASQL" for linked server "Workbench". Firebird数据库中的数据类型NOTES字段为blob。如果我省略了字段NOTES,查询就会执行,并且结果会被正确导入。
但是我需要NOTES字段中的信息,并且正在寻找一种方法来将blob字段type cast到nvarchar。我认为这应该在Openquery中完成(即在查询的火鸟端)。
有没有人能推荐一个纯SQL的解决方案,将blob转换成Firebird中的nvarchar?
发布于 2017-10-23 23:05:14
回答晚了,但也许它能帮助一些人...
您可以通过以下语句将blob转换为varchar:
SELECT CAST(SUBSTRING(BlobColumn FROM 1 FOR 32000) AS VARCHAR(32000)) AS NewBlobColumn
FROM TABLE_NAME然后,您可以在OPENQUERY-语句中使用它
https://stackoverflow.com/questions/23931447
复制相似问题