2012-04-05 4 views
0

Я использую функцию и конвейер его возвращаемые значения. я называю выше функции, как:Извлечение из результатов табличных функций

SELECT * FROM TABLE(FUNC(params)) ORDER BY somecolumn; 

Он возвращает результаты в виде 1 х 4 таблицы, и я попытался с помощью курсоры для их извлечения. Но есть ошибка, говорящая, что курсор предназначен только для имен полей или столбцов, а не для типа.

Можно ли использовать курсоры для того же самого, или есть какой-либо другой способ получить отдельные поля.

+2

Просто примечание ... вы должны (почти) никогда не использовать курсор –

+1

http://stackoverflow.com/questions/58141/why-is-it-considered-bad-practice-to-use-cursors-in -sql-server для вашего ответа, почему бы не использовать курсор. Я не уверен в оракуле, поэтому не уверен, но это может помочь прояснить, что ваш func является функцией таблицы (мое предположение?) –

+0

@JustinPihony Это действительно одно. – user980411

ответ

1

Я думаю, что это то, что вы хотите?

SELECT MyTable.Column1, MyTable.Column3, etc 
FROM TABLE(FUNC(params)) MyTable 
ORDER BY somecolumn; 

Для доступа к конкретным столбцам просто укажите таблицу.

+0

Я использовал в pl sql с помощью курсора: SELECT MyTable.Column1, MyTable.Column3 FROM TABLE (FUNC (params)) MyTable ORDER BY somecolumn; В нем говорится, что MyTable.Column1 должен быть объявлен. – user980411

Смежные вопросы