Vraag : Dynamische SQL voor Genestelde Curseurs/Lijnen

Hello, heeft

I twee curseurs die ik in mijn procedure PL/SQL gebruik.  Voor de genestelde curseur, moet ik het overgaan de kolomnaam om te bekijken.  Bijvoorbeeld,/>My de eerste curseur

v_col1, v_col2, v_col3, etc.

Then, voor elk van die variabelen, roep ik mijn genestelde curseur, maar kolommen die ik in de genestelde curseur heb gebruikt op één van de bovengenoemde variabelen zal worden gebaseerd.  Bijvoorbeeld, voor v_col1, wil ik deze curseur uitvoeren:

select distnct col1, NTILE (10) over (orde door col1 desc) als DECILE_RANK van table1 waar col1 geen ongeldige orde door DECILE_RANK desc is;

and voor v_col2, wil ik deze curseur uitvoeren:

select distnct col2, NTILE (10) over (orde door col2 desc) als DECILE_RANK van table1 waar col2 geen ongeldige orde door DECILE_RANK desc is; ; />. .and


eerder dan om 10 verschillende genestelde curseurs te hebben zal variëren, zou ik de genestelde curseur willen veranderen in iets in die aard en dynamisch de kolomnamen overgaan:

select v_columnname, NTILE (10) over (orde door v_columnname desc) als DECILE_RANK van table1 waar v_columnname geen ongeldige orde door DECILE_RANK desc is;

Is dit mogelijk?  Als zo, kon iemand me één of andere wijzers/steekproefcode van hoe te om dit te doen alstublieft verstrekken?

Thanks!

Antwoord : Dynamische SQL voor Genestelde Curseurs/Lijnen

1:
2:
3:
4:
5:
6:
verklaar
 s_sql    varchar2 (200);
.....
 s_sql: = „uitgezocht“ || v_columnname || „NTILE (10) over (orde door“ || v_columnname || „desc) als DECILE_RANK van table1 waar“ || v_columnname || „is geen ongeldige orde door DECILE_RANK desc; “
 voer directe s_sql uit;
.....
Andere oplossingen  
 
programming4us programming4us