0

假设我已经在 SAP HANA 数据库中创建了存储过程,并且想要具有文本类型的可选 out 参数,例如error details。正如我所读到的那样,我应该使用一些默认值,因此我这样做了:

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
)

但这感觉像是一个巨大的矫枉过正——制作一个只返回一个文本值的表格。

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

4

1 回答 1

1

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

于 2019-03-02T00:02:31.793 回答