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

时间:2018-06-22 09:27:33

标签: sql-server clickhouse

由于安全策略的原因,我需要使用存储过程(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诊断   记录

有人可以要求解决方案或解决方法吗?

1 个答案:

答案 0 :(得分:1)

这很可能是由于ODBC驱动程序不兼容。您可以尝试通过https://www.mankier.com/1/isql

对其进行测试

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