由于安全策略的原因,我需要使用存储过程(MS SQL Server)作为通过ODBC的ClickHouse外部词典的来源。
根据ClickHouse的文档,只能使用一个表(或视图)。尽管ODBC允许调用存储过程。
<odbc>
<db>DatabaseName</db>
<table>TableName</table>
<connection_string>DSN=some_parameters</connection_string>
<invalidate_query>SQL_QUERY</invalidate_query>
</odbc>
当我在表中尝试“ {CALL my_procedure_name}”时,出现此错误。
Poco :: Exception。代码:1000,e.code()= 0,e.displayText()= ODBC 处理异常:无法获取列数:Connection:NetConn: 000000001760E400 \ n服务器:OMEGA_DSN \ n ========================= \ nODBC 诊断记录#1:\ n =========================== \ nSQLSTATE = 42S02 \ n本地错误代码= 208 \ n [Microsoft] [SQL的ODBC驱动程序17 服务器] [SQL Server] 54>?CAB8 <> 5 81J5:B0“ {CALL my_procedure_name}”。\ n \ n ========================= \ nODBC诊断 记录
有人可以要求解决方案或解决方法吗?
答案 0 :(得分:1)
这很可能是由于ODBC驱动程序不兼容。您可以尝试通过https://www.mankier.com/1/isql
对其进行测试至于解决方法,我将从将存储过程包装在视图中开始。