Bonjour dans un SQL dynamique j'utilise le code suivant qui ne fonctionne pas :
cependant en remplacant wval_tranche par sa valeur cela fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 wardynqr := ' select floor(rank()over(order by num_f)/:wval_tranche)tranche,c.* '|| ' from table1 c '|| ' where num_soc = :wvaleur '|| ' and cpt_typ in (select cod_tuple1 '|| ' from pfaccau_fct '|| ' where cod_tab = :C_PRUCRE '|| ' and cod_tuple2 = :C_AR) '|| ' order by NUM_F, CPT_NUM_SEQ' || ' )' execute immediate wardynqr bulk collect into col_cpt using wvaleur, C_PRUCRE, C_AR,wval_tranche;
Les Bind variables ne peuvent être utilisées que pour des conditions apres un signe = != >< etc... On ne peut pas les utilisées pour le calcul d'un champs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 wardynqr := ' select floor(rank()over(order by num_f)/'&wval_tranche&')tranche,c.* '|| ' from table1 c '|| ' where num_soc = :wvaleur '|| ' and cpt_typ in (select cod_tuple1 '|| ' from pfaccau_fct '|| ' where cod_tab = :C_PRUCRE '|| ' and cod_tuple2 = :C_AR) '|| ' order by NUM_F, CPT_NUM_SEQ' || ' )' execute immediate wardynqr bulk collect into col_cpt using wvaleur, C_PRUCRE, C_AR,wval_tranche;
Partager