Sql server 使用存储过程作为外部字典的源

Sql server 使用存储过程作为外部字典的源,sql-server,clickhouse,Sql Server,Clickhouse,由于安全策略,我需要通过ODBC使用存储过程(MS SQL Server)作为ClickHouse外部字典的源 根据ClickHouse的文档,可以仅使用表(或视图)。尽管ODBC允许调用存储过程 <odbc> <db>DatabaseName</db> <table>TableName</table> <connection_string>DSN=some_parameters</connec

由于安全策略,我需要通过ODBC使用存储过程(MS SQL Server)作为ClickHouse外部字典的源

根据ClickHouse的文档,可以仅使用表(或视图)。尽管ODBC允许调用存储过程

<odbc>
    <db>DatabaseName</db>
    <table>TableName</table>
    <connection_string>DSN=some_parameters</connection_string>
    <invalidate_query>SQL_QUERY</invalidate_query>
</odbc>

数据库名
表名
DSN=一些参数
SQL\u查询
当我在表中尝试“{CALL my_procedure_name}”时,我遇到了这个错误

Poco::异常。代码:1000,e.Code()=0,e.displayText()=ODBC 句柄异常:无法获取列数:连接:NetConn: 00000000 1760E400\n服务器:OMEGA_DSN\n==========================================\nODBC 诊断记录#1:\n=====================================\nSQLSTATE= 42S02\n活动错误代码=208\n[Microsoft][ODBC驱动程序17用于SQL 服务器][SQL Server]54>?CAB85 81J5:B0“{调用 my_procedure_name}.。\n\n=================================\nODBC诊断 记录


有人能想出一些解决方案或解决办法吗?

这很可能是由于ODBC驱动程序的不兼容性造成的。您可以尝试通过


至于解决方法,我将从在视图中包装存储过程开始。

不可能从视图中执行存储过程,列表中是ms sql server。