【问题标题】:SAP HANA Stored Procedure optional output parameter with text type带有文本类型的 SAP HANA 存储过程可选输出参数
【发布时间】:2019-07-23 14:46:45
【问题描述】:

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

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
)

但这感觉有点过头了——制作一个只返回一个文本值的表格。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 是的,这是可能的,但问题是程序在很多地方被调用,因此每次调用都会带来很多额外的工作。如果有必要的时候有办法一个一个地做就更好了。
    • 好吧,或者我会使用SIGNAL 工具来引发包含附加信息的错误消息。这样,您将使用标准错误处理通道。
    猜你喜欢
    • 2018-11-08
    • 2019-03-02
    • 2020-01-29
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多