Informix: процедура с выходными параметрами? - PullRequest
1 голос
/ 07 октября 2010

Я много искал, но ничего не смог найти ... Я просто хочу спросить, есть ли способ создать и вызвать процедуру ( 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 ]

1 голос
/ 07 октября 2010

Зачем вам нужны параметры? Процедуры 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.

...