Необязательный выходной параметр хранимой процедуры SAP HANA с типом текста

Давайте представим, что я создал хранимую процедуру в базе данных SAP HANA и хотел бы иметь необязательный параметр out с типом текста, например подробности об ошибке. Как я прочитал, чтобы достичь этого, я должен использовать некоторое значение по умолчанию, поэтому я сделал так:

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

К сожалению, сборка не удалась со следующей ошибкой:

Параметры OUT и IN OUT могут не иметь выражений по умолчанию

Итак, я решил попробовать с нулем, но так же не получилось. Позже я просто изменил тип на integer, чтобы попытаться, и он снова не удался точно так же.

В то же время это работает:

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

но это кажется огромным излишним - создать таблицу, которая будет возвращать только одно текстовое значение.

Есть ли у вас какие-либо предложения, как добавить необязательный выходной параметр?

1 ответ

SQL Script в своем текущем состоянии не допускает необязательных параметров OUT. Почему бы просто не установить значение по умолчанию для параметра OUT в теле процедуры прямо перед кодом? Это добавляет стандартный код, но вы также можете использовать его для передачи явных сообщений об успехе.

Другие вопросы по тегам