Explain Plan для pipelined (+PL/SQL package)

Зорин Е.В.
Дата: 18.11.2008 13:32:48
Здравствуйте,
Исходные средства:
Oracle 9i,
Pl/SQL Developer 7.0.2

Подскажите, пожалуйста, как получить explain_plan для следующего запроса, где
nshapsha_test2 - название схемы,
proddataprocessingPckg - PL/SQL пакет,
GetPrevDailyData() - pipelined функция(возвращает три атрибута),
TPrevDailyProdTbl - тип, который возвращает GetPrevDailyData():

select * from table(cast (nshapsha_test2.proddataprocessingPckg.GetPrevDailyData(&pEndDate) as nshapsha_test2.proddataprocessingpckg.TPrevDailyProdTbl))

CAST добавил почитав FAQ, но не помогло, пишет "ORA:00907 missing right parenthesis".
orawish
Дата: 18.11.2008 13:47:53
по крайней мере тип в cast вы не правильно указываете.
сервер в момент компиляции вашего пакета создает соответствующий вашему pl/sql описанию
sql-тип(/ы) вида SYS_PLSQL_ля-ля. Вот он то и нужен касту. А вообще - создавали бы вы его
ручками - оно и нагляднее и надёжнее.
Зорин Е.В.
Дата: 18.11.2008 13:50:03
orawish,

в смысле пакет создавать ручками или что?
orawish
Дата: 18.11.2008 13:50:55
Зорин Е.В.
orawish,

в смысле пакет создавать ручками или что?

sql-тип, который ваша конвейерная функция возвращает
Зорин Е.В.
Дата: 18.11.2008 13:54:02
orawish,

не могли бы вы примерно написать как это должно выглядеть?
Зорин Е.В.
Дата: 18.11.2008 14:04:59
orawish
по крайней мере тип в cast вы не правильно указываете.
сервер в момент компиляции вашего пакета создает соответствующий вашему pl/sql описанию
sql-тип(/ы) вида SYS_PLSQL_ля-ля. Вот он то и нужен касту. А вообще - создавали бы вы его
ручками - оно и нагляднее и надёжнее.

а где можно взглянуть на sql-тип вида SYS_PLSQL_ля-ля, дело в том, что я компилирую пакет через PL/SQL Developer и подобных типов там не образуется
orawish
Дата: 18.11.2008 14:14:40
Зорин Е.В.
orawish
по крайней мере тип в cast вы не правильно указываете.
сервер в момент компиляции вашего пакета создает соответствующий вашему pl/sql описанию
sql-тип(/ы) вида SYS_PLSQL_ля-ля. Вот он то и нужен касту. А вообще - создавали бы вы его
ручками - оно и нагляднее и надёжнее.

а где можно взглянуть на sql-тип вида SYS_PLSQL_ля-ля, дело в том, что я компилирую пакет через PL/SQL Developer и подобных типов там не образуется

ну, как же, образуется (в базе). взглянуть -
select * from user_objects where object_type = 'TYPE';
select type_name,a.* from user_arguments a
where package_name = 'пакет'
  and object_name = 'функция'
  and position = 0;
Зорин Е.В.
Дата: 18.11.2008 14:27:45
orawish,

исполнив

select * from user_objects;
select type_name,a.* from user_arguments a

типов, объявленных в пакете не обнаружил :(
orawish
Дата: 18.11.2008 14:37:14
Зорин Е.В.
orawish,

исполнив

select * from user_objects;
select type_name,a.* from user_arguments a

типов, объявленных в пакете не обнаружил :(

не верю.. ;)

вы, наверное по имени искали? если да, то зря..
Зорин Е.В.
Дата: 18.11.2008 14:41:55
orawish,

я просто сделал общую выборку из этих системных представлений