Как я могу создать временную таблицу, которую я могу вернуть при вызове функции?
Создайте временную ТАБЛИЦУ внутри ФУНКЦИИ
comment
Прочтите о динамическом SQL: docs.oracle.com/ cd/E11882_01/appdev.112/e25519/
- person a_horse_with_no_name   schedule 12.02.2013
comment
@user2001117: см. теги
- person a_horse_with_no_name   schedule 12.02.2013
comment
Временные таблицы в Oracle не должны (должны) создаваться на лету; они являются постоянными объектами с данными, специфичными для сеанса, а не чем-то, что вы можете передать или вернуть. См. это и это, чтобы узнать больше.
- person Alex Poole   schedule 12.02.2013
comment
Это способ работы с MS T-SQL. Временные таблицы в Oracle отличаются; чтобы понять больше, см. мой ответ на очень похожий вопрос здесь stackoverflow.com/a/1193443/146325
- person APC   schedule 12.02.2013
comment
Я не уверен, насколько полезен этот вопрос без дополнительной информации. В чем смысл этой временной таблицы? Чего именно вы пытаетесь достичь? Это глобальная временная таблица или вы пытаетесь создать «табличный» вывод, в котором вы пытаетесь получить конвейерную функцию или курсор ссылки?
- person Mike Meyers   schedule 12.02.2013
Ответы (1)
Смотрите этот:
create or replace procedure maketemptab
is
sqlstmt varchar2(500);
begin
sqlstmt := 'CREATE GLOBAL TEMPORARY TABLE(col1 varchar2(10))';
execute immediate sqlstmt;
end;
person
user2001117
schedule
12.02.2013
Это не создаст временную таблицу.
- person a_horse_with_no_name; 12.02.2013
Мало того, что он не создаст таблицу (есть ошибка sybtax), создание временных таблиц таким образом идиоматически неправильно для Oracle.
- person APC; 12.02.2013