当前位置: 首页 > 知识库问答 >
问题:

从SQL服务器调用HANA存储过程

路扬
2023-03-14

我在SAP HANA中定义了一个存储过程,其中包含3个in参数,返回一个记录集。当我用call sp_name(par1,par2,par3)语法调用它时,它在HANA studio中运行得非常好。

现在我需要从微软SQL服务器调用它(我在2016年)。我有一个与HANA服务器的远程链接服务器连接,当使用HANADB... DBNAME. TABLENAMEOPENQUERY(HANADB,'SELECT...')语法查询表和视图时,它可以正常工作。

我尽力了,但找不到调用远程过程的方法。“CALL sp_name(p,p,p)”语法返回“对象没有列或当前用户没有授权”错误。

我还尝试使用语言在HANA中创建存储过程,SQLSCRIPT使用结果视图ViewName读取SQL数据。从HANA内部调用视图现在很痛苦,因为我必须使用占位符。“$$parametername$$”=

[SAP AG][LIBODBCHDB DLL][HDBODBC]常规错误;328无效的函数或过程名称:view name

有没有办法从SQL server调用HANA中的存储过程?

更多信息:如果我在SQL server中运行该语句而不包含参数:SELECT*FROM OPENQUERY(hanadb,'CALL MYDBNAME.“MYSPNAME”()

我得到这个错误:

[SAP AG][LIBODBCHDB DLL][HDBODBC]一般错误;1281错误的数量或类型的参数在调用:DATAIN是不绑定:行1 col6(在pos 5

如果我包括参数,我会得到错误:

Msg 7357,级别16,状态2,第1行无法处理对象“CALL MYDBNAME”MYSPNAME“('2021-01-01T00:00:00.000Z'、'2021-02-01T00:00:00.000Z'、'甲苯')。链接服务器“hanadb”的OLE DB提供程序“MSDASQL”表示该对象没有列,或者当前用户没有必要的权限。

在第二种情况下,错误是由SQL服务器产生的,而在第一种情况下是由Hana产生的。我不知道是否有办法解决这个问题。


共有1个答案

林星阑
2023-03-14

请像这样试试。hana_链接的_服务器_名称处的EXEC('call schema_name.sp_name('p1 value','p2 value'))

 类似资料:
  • 我希望API管理服务中的一个API调用CosmosDB中的存储过程并返回其结果。似乎没有太多关于这个主题的文件。 到目前为止我的尝试: null null null

  • 问题内容: 我正在尝试从python脚本调用我的MSSQL数据库中的存储过程,但是通过python调用时它无法完全运行。此过程将交易数据合并到单个表中的小时/每日块中,稍后由python脚本抓取。如果我在SQL Studio中运行该过程,则可以正常完成。 当我通过脚本运行它时,它会缩短大约2/3的时间。目前,我已经找到一种解决方法,方法是使程序在进入下一个SQL语句之前先休眠10秒钟,但是这样做并

  • 我使用Spring Boot和Spring数据。 我认为把存储库层和服务层分开是没有问题的 null null 在我的控制器中,我必须从UserService调用方法,有时还必须从UserRepository调用方法。目前,我将两者都注入到控制器中,并调用service或repository 我只是问,因为我混淆了在同一个类中注入两者和调用其中一个或另一个 另一方面,这意味着在服务层重复方法,如下

  • 问题内容: 任何人都有关于如何使用sp_helptext在链接服务器上查看存储过程的想法吗?基本上是这样的。我没有该链接服务器的凭据才能查看。 谢谢你。 问题答案: 与其使用一个远程参数在本地调用sp_helptext,不如使用一个本地参数来远程调用它:

  • 本文向大家介绍SQL SERVER调用存储过程小结,包括了SQL SERVER调用存储过程小结的使用技巧和注意事项,需要的朋友参考一下 在SQL Server数据库的维护或者Web开发中,有时需要在存储过程或者作业等其他数据库操作中调用其它的存储过程,下面介绍其调用的方法 一、SQL SERVER中调用不带输出参数的存储过程 SQL 代码 二、SQL SERVER中调用带输出参数的存储过程 SQL

  • 问题内容: 是否允许在SQL CTE语句中执行存储过程?我对sql cte查询有点陌生… 问题答案: 不,对不起 仅SELECT语句 如果您需要使用存储的proc输出(结果集),那么它将是一个临时表