powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Хранимые процедуры в Informix
8 сообщений из 8, страница 1 из 1
Хранимые процедуры в Informix
    #33141467
nickolaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Не могли бы вы подсказать мне наиболее быстрый способ добавить хранимую процедуру на сервер?
Нужна простая процедура, которая будет на вход принимать 5 параметров, а на выход отдавать два.

Спасибо!
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33141477
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM "Informix SQL Syntax"&"Informix SQL Reference" на предмет "create procedure".

В итоге получим текст типа:
CREATE PROCEDURE "informix".test(
a1 CHAR(12),
a2 CHAR(10),
a3 INTEGER,
a4 DECIMAL(20,2),
a5 DECIMAL(20,2)
)
RETURNING SMALLINT;
RETURN 0;
END PROCEDURE
Далее выполнить полученный SQL либо через dbaccess либо с помощью любого клиента.
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33141498
nickolaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ!

А как же быть с этим:
You must first decide if the routine you are creating returns values or not. If the routine does not return values, you create an SPL procedure. To create an SPL procedure, you use the CREATE PROCEDURE statement. If the routine returns a value, you create an SPL function. To create an SPL function, you use the CREATE FUNCTION statement.

Тоесть, получается, что процедуры не возвращают значений?
А мне нужно возвращать два varchar(255).
Следовательно мне лучше использовать функции?
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33141583
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FUNCTION это таже PROCEDURE, до 9-ки понятия FUNCTION вообще не было. Единственное отличие - FUNCTION ОБЯЗАНА возвращать значение, процедура может этого и не делать.

Два значения как RETURNIG возвратить нельзя. Вместо этого можно использовать несколько путей:

А. Описать свой комплексный тип, состоящий из этих двух параметров и возвращать его.
Б. Возвращать данные через temp table.
В. Возвращать через RETURN ... WITH RESUME (если параметры однотипные).
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33142331
Valentyn Pidburtnyi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaugavaДва значения как RETURNIG возвратить нельзя.
Я что-то не так понял?


create procedure __temp
(
_id int
) returning int, varchar(255), float, date

return 1, 'blah-blah-blah', 1.33, date(current);

end procedure;
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33142350
Valentyn Pidburtnyi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдогонку.
IBM Informix Dynamic Server Version 9.40.UC4
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33142509
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, с прямым углом перепутал :-). multiple return думаю был доступен еще в 5-ке, а может и раньше.
...
Рейтинг: 0 / 0
Хранимые процедуры в Informix
    #33142967
Enlighten me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guide to SQL: Syntax, Versions 10.0 and 8.5 (G251-2284-01)How many values a function can return is language-dependent. Functions written in SPL can return one or more values. External functions written in the C or Java languages must return exactly one value. But a C function can return a collection type, and external functions in queries can return additional values indirectly from OUT parameters (and for the Java language, from INOUT parameters) that Dynamic Server can process as statement-local variables (SVLs).
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Хранимые процедуры в Informix
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]