Informix: процедура с выходными параметрами?

Я много искал, но ничего не смог найти... Я просто хочу спросить, есть ли способ создать и вызвать процедуру (Informix) без параметров. Я знаю, как вернуть одно или несколько значений (для процедур и для функций), но это не то, что я хочу. Было бы очень странно, если бы Informix не позволял выводить параметры..

Заранее спасибо!

РЕДАКТИРОВАТЬ: Да, я видел, что это возможно, но я все еще не могу выполнить такую ​​процедуру. Например:

  CREATE PROCEDURE mytest(batch INT,OUT p_out INT)  
  DEFINE inc INTEGER;  
  LET inc = 1;  
  LET p_out = 5;  
  END PROCEDURE;  

и что я получаю это:

Рутина mytest не может быть решена

и это происходит только при выполнении функций с выходными параметрами..

2 ответа

Решение

Зачем вам нужны "вне" параметры? Процедуры Informix могут возвращать несколько значений из одного вызова (или, в этом случае, одного значения):

  CREATE PROCEDURE mytest(batch INT) RETURNING INT AS p_out;
      DEFINE inc INTEGER;
      DEFINE p_out INTEGER;
      LET inc = 1;
      LET p_out = batch + inc;
      RETURN p_out;
  END PROCEDURE;

Существует только ограниченное количество мест, где вы можете использовать параметр OUT. Один из них в запросе - в некоторых сообщениях об ошибках появляется имя SLV (локальная переменная оператора). Я считаю, что есть способ получить параметры OUT через Java (JDBC). AFAIK, другие API не позволяют это.

Код, написанный для Informix, предполагает, что ему не нужны выходные параметры. Код, перенесенный в Informix из других (обедненных?) Систем, которые не предоставляют нескольких выходных значений из одной процедуры, необходимо переосмыслить для разумной работы с Informix.

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