Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Вопрос по хранимым процедурам / 13 сообщений из 13, страница 1 из 1
06.06.2004, 12:13
    #32549850
Вопрос по хранимым процедурам
Вопрос такой, есть тут одна программа, работающая на основе базы informix 7.30, нужно создать хранимую процедуру, в которой осуществляется выборка данных.
Пытаюсь создать простейшую, примерно следующее:

create procedure example() returning float;
return 12;
end procedure;
Появляется сообщение о синтаксической ошибке,
а такого вида работает:

create procedure example()
end procedure;

Подскажите что неправильно или где почитать.
...
Рейтинг: 0 / 0
06.06.2004, 13:32
    #32549890
В.К.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Вот это:

Код: plaintext
1.
2.
3.
create procedure example() returning float;
  return  12 ;
end procedure;

работает без ошибок в 9.30.TC2... И вообще должно работать.

Читать - документацию IBM Informix,навпример, здесь:

http://www.informix.kiev.ua

Про синтаксис SPL можно еще тут посмотреть:

http://ln.ua/~openxs/projects/informix/splsntx.html

Такие дела.

В.К.
...
Рейтинг: 0 / 0
08.06.2004, 00:31
    #32551581
Vybegallo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Try wihout ";" in procedure definition.
...
Рейтинг: 0 / 0
08.06.2004, 08:25
    #32551671
Вопрос по хранимым процедурам
Попробовал, таже история.
Ещё проходит такая конструкция

create procedure example()
begin
end
end procedure;

Может мою задачу можно решить и по другому?Вот в кратце задание.
Значит на компутере с win2000 настроен odbc. Нужно разбработать набор отчётов, хочу построить отчёты таким образом. В excel есть импорт внешних данных, в виде макроса оформляю подключение к базе и выполняю запрос. Почему Excel, да потому что большинство пользователей умеют с ним работать, могут убрать лишние колонки, добавить ещё какие-нибудь расчёты. А вот тут и появляется проблема, простые запросы он без проблем выполняет, а допусти более сложные с созданием промежуточных временных таблиц нет. Допустим такой:

select a.in_pkod as in_pkod, s.d_name as name, sum(a.in_npay) as sum_zak
from invoice as a, dealers as s
where a.in_ttype=1 and a.in_pkod=s.d_pkod
and (a.in_pkod<'101' or a.in_pkod>'500') and a.in_pkod<>'UNI'
group by a.in_pkod, s.d_name
into TEMP zakup;


Microsoft Query(в Excel) пишет, что виртуальные колнки должны иметь точные(явные) имена. Вроде и так всё обозвано, не понимаю, главное ошибка при использовании агрегирующих функций, а так работает, создаёт временные таблицы и т.д.


Текст запросов довольно большой, много промежуточных таблиц.

Решил оформить запросы в хранимые процедуры(функции), но что-то с ними проблема.
Цель процедуры вывести результат в виде набора записей.
...
Рейтинг: 0 / 0
08.06.2004, 08:43
    #32551690
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Гришкин СергейПопробовал, таже история.
Ещё проходит такая конструкция

create procedure example()
begin
end
end procedure;


точка с запятой не пролезает. Средство которым ты пользуешься считает что после ; начинается новый sql запрос.
...
Рейтинг: 0 / 0
08.06.2004, 08:51
    #32551696
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Гришкин Сергей

select a.in_pkod as in_pkod, s.d_name as name, sum(a.in_npay) as sum_zak
from invoice as a, dealers as s
where a.in_ttype=1 and a.in_pkod=s.d_pkod
and (a.in_pkod<'101' or a.in_pkod>'500') and a.in_pkod<>'UNI'
group by a.in_pkod, s.d_name
into TEMP zakup;

Вроде все верно.

А если упростить до такого:

select a.in_pkod, s.d_name, sum(a.in_npay) sum_zak
from invoice a, dealers s
group 1, 2
into TEMP zakup;

ЗЫ: А ты в какой фирме в Череповце работаешь если не секрет?
...
Рейтинг: 0 / 0
08.06.2004, 09:47
    #32551788
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
С помощью чего создается процедура? Не иначе как MSQuery ? Воспользуйся стандартным dbaccess и волосы станут мягкими и пушистыми.
...
Рейтинг: 0 / 0
08.06.2004, 10:23
    #32551842
Вопрос по хранимым процедурам
А если упростить до такого:

select a.in_pkod, s.d_name, sum(a.in_npay) sum_zak
from invoice a, dealers s
group 1, 2
into TEMP zakup;

Денис, такая же ерунда: virtual column must have explicit name.
Я работаю в ТК Рассвет, Андрей Беляев должен был переслать письмо тебе.
...
Рейтинг: 0 / 0
08.06.2004, 10:35
    #32551872
Вопрос по хранимым процедурам
А если упростить до такого:

select a.in_pkod, s.d_name, sum(a.in_npay) sum_zak
from invoice a, dealers s
group 1, 2
into TEMP zakup;

Денис, такая же ерунда: virtual column must have explicit name.
Я работаю в ТК Рассвет, Андрей Беляев должен был переслать письмо тебе.
...
Рейтинг: 0 / 0
08.06.2004, 10:37
    #32551879
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Кстати, насчет "INTO TEMP", корректнее будет писать
"INTO TEMP zakup WITH NO LOG" дабы меньше грузить сервер.
...
Рейтинг: 0 / 0
08.06.2004, 11:01
    #32551939
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Гришкин СергейА если упростить до такого:

select a.in_pkod, s.d_name, sum(a.in_npay) sum_zak
from invoice a, dealers s
group 1, 2
into TEMP zakup;

Денис, такая же ерунда: virtual column must have explicit name.

Смотри в информиксе какой запрос на самом деле выполняется. Возможно твоя прога его корежит.

Гришкин Сергей
Я работаю в ТК Рассвет, Андрей Беляев должен был переслать письмо тебе. Я помню.
...
Рейтинг: 0 / 0
08.06.2004, 11:46
    #32552065
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
В общем дело в MS Query. Он корежит запрос.

Выполняю запрос:

SELECT bios_type, max(bios_name) as gg
FROM bios_tbl
Group by 1
into temp l1

Ругается -249.

Смотрю в информиксе и вижу что выполняется запрос:

SELECT bios_type, max(bios_name) FROM bios_tbl Group by 1 into temp l1




Хочу есть.
...
Рейтинг: 0 / 0
08.06.2004, 12:09
    #32552130
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хранимым процедурам
Журавлев ДенисВ общем дело в MS Query. Он корежит запрос.

вообще во всех запросах алисы полей срезает.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Вопрос по хранимым процедурам / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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