具有文本类型的 SAP HANA 存储过程可选输出参数
SAP HANA Stored Procedure optional output parameter with text type
假设我已经在 SAP HANA 数据库中创建了存储过程,并且希望有可选的文本类型输出参数,例如 错误详细信息。正如我所读到的那样,我应该使用一些默认值,因此我这样做了:
PROCEDURE "myProcedure"
(
IN inSomeParameter BIGINT,
OUT outResult INTEGER, -- output, result of the operation
OUT outErrorDetail NVARCHAR(32) default ''
)
很遗憾,构建失败并出现以下错误:
OUT and IN OUT parameters may not have default expressions
所以,我决定尝试使用 null,但同样失败了。后来我将类型更改为整数只是为了尝试,但它再次以完全相同的方式失败。
与此同时有效:
PROCEDURE "myProcedure"
(
IN inSomeParameter BIGINT,
OUT outResult INTEGER, -- output, result of the operation
OUT outErrorDetail TABLE(errorDetails NVARCHAR(32)) default empty
)
但这感觉有点矫枉过正 - 让 table 到 return 只有一个文本值。
您对如何添加可选输出参数有什么建议吗?
SQL 当前状态下的脚本不允许可选的 OUT 参数。
为什么不直接在代码之前的过程主体中设置 OUT 参数默认值?
这会添加样板代码,但您也可以使用它来传达明确的成功消息。
假设我已经在 SAP HANA 数据库中创建了存储过程,并且希望有可选的文本类型输出参数,例如 错误详细信息。正如我所读到的那样,我应该使用一些默认值,因此我这样做了:
PROCEDURE "myProcedure"
(
IN inSomeParameter BIGINT,
OUT outResult INTEGER, -- output, result of the operation
OUT outErrorDetail NVARCHAR(32) default ''
)
很遗憾,构建失败并出现以下错误:
OUT and IN OUT parameters may not have default expressions
所以,我决定尝试使用 null,但同样失败了。后来我将类型更改为整数只是为了尝试,但它再次以完全相同的方式失败。
与此同时有效:
PROCEDURE "myProcedure"
(
IN inSomeParameter BIGINT,
OUT outResult INTEGER, -- output, result of the operation
OUT outErrorDetail TABLE(errorDetails NVARCHAR(32)) default empty
)
但这感觉有点矫枉过正 - 让 table 到 return 只有一个文本值。
您对如何添加可选输出参数有什么建议吗?
SQL 当前状态下的脚本不允许可选的 OUT 参数。 为什么不直接在代码之前的过程主体中设置 OUT 参数默认值? 这会添加样板代码,但您也可以使用它来传达明确的成功消息。