文本类型的SAP HANA存储过程可选输出参数

时间:2019-03-01 14:39:11

标签: stored-procedures hana hana-sql-script

让我们假设我已经在SAP HANA数据库中创建了存储过程,并且希望具有文本类型的可选out参数,例如错误详细信息。正如我所读到的那样,我应该使用一些默认值,这样我就可以做到:

PROCEDURE "myProcedure"
(
    IN  inSomeParameter  BIGINT,
    OUT outResult        INTEGER,   -- output, result of the operation
    OUT outErrorDetail   NVARCHAR(32) default ''
)

不幸的是,构建失败并出现以下错误:

  

OUT和IN OUT参数可能没有默认表达式

因此,我决定尝试使用 null ,但是以相同的方式失败了。后来,我尝试将类型更改为整数,然后再次完全失败。

这同时起作用:

PROCEDURE "myProcedure"
(
    IN  inSomeParameter  BIGINT,
    OUT outResult        INTEGER,   -- output, result of the operation
    OUT outErrorDetail   TABLE(errorDetails NVARCHAR(32)) default empty
)

但是感觉像是一个巨大的矫over过正-使表仅返回一个文本值。

您对如何添加可选的输出参数有任何建议吗?

1 个答案:

答案 0 :(得分:1)

处于当前状态的SQL脚本不允许使用可选的OUT参数。 为什么不直接在代码之前在过程主体中设置OUT参数默认值? 这会添加样板代码,但您也可以使用它来传达明确的成功消息。