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

Stored procedures SAP HANA存储过程文本类型的可选输出参数,stored-procedures,hana,hana-sql-script,Stored Procedures,Hana,Hana Sql Script,让我们设想一下,我已经在SAP HANA数据库中创建了存储过程,并且希望具有可选的out参数和文本类型,如错误详细信息。正如我所读到的,为了实现这一点,我应该使用一些默认值,因此我这样做: PROCEDURE "myProcedure" ( IN inSomeParameter BIGINT, OUT outResult INTEGER, -- output, result of the operation OUT outErrorDetail

让我们设想一下,我已经在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,但以同样的方式失败。后来我将类型更改为integer只是为了尝试,但它再次以完全相同的方式失败

同时,这项工作:

PROCEDURE "myProcedure"
(
    IN  inSomeParameter  BIGINT,
    OUT outResult        INTEGER,   -- output, result of the operation
    OUT outErrorDetail   TABLE(errorDetails NVARCHAR(32)) default empty
)
但是,让一个表只返回一个文本值感觉太过分了


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

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

是的,这是可能的,但问题是该过程在许多地方被调用,因此更改每个调用会带来大量额外的工作。如果有一种方法在必要的时候一个接一个地执行,那就更好了。或者,我会使用信号设备发出错误消息,包括附加信息。这样,您将使用标准错误处理通道。