je vous présente d'abord mon problème :
Ceci fonctionne sans prob!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS TYPE c_partition_type_in IS REF CURSOR; c_partition_in c_partition_type_in; l_statement VARCHAR2(400); nbr NUMBER; BEGIN l_statement := 'SELECT ROWNUM FROM smf_closing_prices'; OPEN c_partition_in FOR l_statement; fetch c_partition_in into nbr; close c_partition_in; END;
Mais j'aimerais le fetcher dans une collection:
Ceci me provoque une erreur à l'éxecution quand je lance la procédure!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS TYPE c_partition_type_in IS REF CURSOR; c_partition_in c_partition_type_in; l_statement VARCHAR2(400); TYPE TYP_CLOSING_PRICES IS TABLE OF NUMBER; closing_prices_list TYP_CLOSING_PRICES; BEGIN l_statement := 'SELECT ROWNUM FROM smf_closing_prices partition('||l_partition||')'; OPEN c_partition_in FOR l_statement; fetch c_partition_in bulk collect into closing_prices_list; close c_partition_in; END;
invalid cursor! comprends pas du tout, alors que j'ai regardé plusieurs documents!
alors jai essayé sans cursor :
Et ceci me provoque une erreur à la compilation au niveau de l'execute immediate!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS l_statement VARCHAR2(400); TYPE TYP_CLOSING_PRICES IS TABLE OF NUMBER; closing_prices_list TYP_CLOSING_PRICES; BEGIN l_statement := 'select rownum from smf_closing_prices'; execute immediate l_statement bulk collect into closing_prices_list; END;
bref je ne sais plus koi faire!
est ce qqun saurait m'éclairer merci!
Partager