powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / выборка из временной таблици внутри UDR
9 сообщений из 9, страница 1 из 1
выборка из временной таблици внутри UDR
    #34713083
привет, подскажите пожалуйста, в чём ошибка и как следует делать правильно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create procedure some_proc()
create temp table tmp (id intefer, descr varchar( 16 )) with no log;
 -- some code
 insert into some_table (id, descr)
 select t.id, t.descr from tmp t;
 -- some code
end procedure

когда это выполняется не внутри UDR, всё работает отлично, когде же помещаем в ф-цию - вылетаем с ошибкой
INTO TEMP table required for SELECT statement
дело в том, что таблица some_table не является временной, это самая обычная таблица, в то время как, таблица tmp (из которой выбираем данные) является темповой... т.е. INTO TEMP означало бы обратное действие предполагаемому - из some_table в tmp, когда нужно наоборот (tmp->some_table)

подскажите как правильно это делать внутри тела UDR

Спасибо!
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34713231
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то вы не договариваете, все должно работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table te111(a int);
Table created.

create procedure some_proc222()
create temp table tmp (a integer) with no log;
 insert into te111      (a )
 select t.a  from tmp t;
end procedure

Routine created.

execute procedure some_proc222();

Routine executed.

...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34713279
Журавлев Денисчто-то вы не договариваете, все должно работать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create procedure some_proc()
create temp table tmp (id intefer, descr varchar( 16 )) with no log;
 -- some code
 insert into some_table (id, descr)

 select t.id, 
(select another from some_table2 where ....)

from tmp t;
 -- some code
end procedure

...ну в оригинале ещё была вложенный подзапрос
это всё, остальные отличая только в наименовании столбцов и их количистве.
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34713306
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create procedure some_proc223()
create temp table tmp (a integer) with no log;
insert into tmp values ( 1 );
 insert into te111 (a )
 select 
   (select tabid from systables where tabid= 99 )
 from tmp t;
end procedure

Routine created.

execute procedure some_proc223();

Routine executed.
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34713308
olleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка в
--some code ?

Потому что:
Ошибка -659
INTO TEMP table required for SELECT statement.

A SELECT statement did not specify where to put the returned values. SELECT statements within a procedure require either an INTO TEMP clause or an INTO clause that references the appropriate procedural variables.

Example of error:

CREATE PROCEDURE testproc()
...
SELECT col1, col2 FROM tab; -- error
END PROCEDURE

Correction:

CREATE PROCEDURE testproc()
...
SELECT col1, col2
INTO var1, var2
FROM tab;

SELECT col1, col2
FROM tab
INTO TEMP another_table;
END PROCEDURE
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34713401
ollegОшибка в
--some code ?
...да, всё, всем спасибо. просто номер строки ошибки был именно тот, где производится выборка из временной таблицы.

прошу прощения, проблема действительно блин тривиальная... нельзя же ведь внутри хранимок просто selectы делать.

спасибо.
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34714045
Ребята, и последнее, подскажите как правильно внутри не SPL кода присвоить значение некоторой переменной их ф-ции?
т.е. обчного SQL , который про define не знает...

execute function into подразумевает использование SPL переменной оюъявленной с помощью define, но это ключивае слово вне SPL не может использоваться.

Как выбрать результат выполнения некой ф-ции в простом SQL ?
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34714089
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create procedure some_proc333() returning integer
return  5 ;
end procedure
 Routine created.


execute procedure some_proc333();
(expression) 
            5 
 1  row(s) retrieved.
Возвращается курсор, обычный запрос.
...
Рейтинг: 0 / 0
выборка из временной таблици внутри UDR
    #34714138
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select * from table(multiset{some_proc333()});

unnamed_col_1 

             5 

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


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