|
Тема |
Re: Dynamic Rows -> Columns [re: EroS] |
|
Автор |
headhunter (huntz orcxez) |
|
Публикувано | 30.07.08 13:39 |
|
|
Ми кофтито е, че искаш да ти връща динамично различен брой месеци.
Иначе транспозицията е лесна.
Можеш да ползваш reference cursor (как се викаше: май слабо типизиран...) за да стартираш динамичен sql statement.
Всъщност отговора на въпроса ти може да се съдържа в това: какво ще правиш по-късно с тези данни? Ако връщането на курсор те урежда: генерираш си в една процедура в един varchar2 един динамичен sql и го пускаш на ей-тази процедура:
create or replace procedure reference_cursor(sql_select in varchar2, cur out sys_refcursor)
authid current_user
as
begin
open cur for sql_select;
end reference_cursor;
/
Първия параметър ти е sql, втория ти връща курсора. Понеже SQL-a ти е стринг, може да бъде доволно дълъг (е.. до 32000 байта, ако не се лъжа), и динамично можеш да нацвъкаш вътре толкова кейсове (виж първия ми постинг), колкото месеци имаш. Върнатия курсор ще съдържа данните точно каквито ги искаш. Само въпроса е, дали курсор като резултат те урежда.
General Protection Fault in module 0xDEEBAA. Рестартирайте държавата!
|
| |
|
|
|