Je ne comprends pas, je suis obligée de faire un loop?
Version imprimable
Je ne comprends pas, je suis obligée de faire un loop?
j'ai pas le temps de me pencher plus sur le cas mais le LOOP ne me parait pas nécessaire ;)
Note que je peux me tromper :oops:
Je pense que la boucle est indispensable puisque j'ai une curseur.
donc pour parcourir ce curseur, je dois faire une boucle.
sauf si le select du cursor est déplacé dans une SELECT de l'insert :
devient :Code:
1
2
3
4
5 FOR c IN (SELECT * FROM tab) LOOP insert into tab2 value (c.col1, c.col2); END LOOP;
Code:insert into tab2 SELECT * from tab;
Ok d'accord.
donc j'ai ecrit la requeête suivante:
je n'ai aucune valeur qui est insérée dans ma table.Code:
1
2
3
4 le_sql:='INSERT INTO COUNT(shop_id, action_type, action_type_lab, people_number) select shop_id, ''SMS'',''SMS'', count(idpor) from mkt.fdidet, mkt.fdcart, mkt.fdpart, ref.crm_shop where cadad<>''21001231'' and camot= '' '' and fdpart.patvo like ''06%'' and fdpart.pacl1=''Y'' and shop_id in (''359'',''59'') and idpor = capor and idpor = papor and idagr= decode(length(shop_id),2,''100''||shop_id, 3, ''10''||shop_id,1,''1000''||shop_id,4,''1''||shop_id) and country_id=''FR'' and sign_id=''01'' group by shop_id'; EXECUTEIMMEDIATE le_sql;
Quand je le fais manuellement, cette reque^te fonctionne bien.
Aurais-je fait une erreur dans mon sql dynamique?
pourtant j'ai vérifier la syntaxe et il me semble que c'est ok.
t'as pensé au COMMIT ?
ok j'ai changé mon code, et je l'ai fait ainsi:
suivi d'un COMMIT ;-)Code:
1
2
3 executeimmediate'INSERT INTO COUNT(shop_id, action_type,people_number) select shop_id, '||code_action_S||',count(idpor) from mkt.fdidet, mkt.fdcart, mkt.fdpart, ref.crm_shop where cadad<>''21001231'' and camot= '' '' and fdpart.patvo like ''06%'' and fdpart.pacl1=''Y'' and shop_id in (''359'',''59'') and idpor = capor and idpor = papor and idagr= decode(length(shop_id),2,''100''||shop_id, 3, ''10''||shop_id,1,''1000''||shop_id,4,''1''||shop_id) and country_id=''FR'' and sign_id=''01'' group by shop_id';
cela fonctionne donc maintenant.
Par contre quand j'appelle la variable code_action_s, cela ne fonctionne plus snif:cry:
ok tout va bien...
lol je commence à tout comprendre lol
en tout cas merci pour votre aide...
je pense que ma requ^te ne va plus prendre que quelques minutes maintenant.