Bonjour,
Dans une proc. stockée, je souhaite faire un INSERT dans des tables différentes de même structures en n'écrivant un seul INSERT mais en changeant dynamiquement le nom de la table.
Comment faire?
Merci.
Version imprimable
Bonjour,
Dans une proc. stockée, je souhaite faire un INSERT dans des tables différentes de même structures en n'écrivant un seul INSERT mais en changeant dynamiquement le nom de la table.
Comment faire?
Merci.
Code:
1
2
3 EXECUTE IMMEDIATE 'INSERT INTO '||nom_table||'(a,b,c) VALUES (:1,:2,:3)' USING val1,val2,val3;
C'est le nom de la table que je veux changer dynamiquement...
Eh beh ???:roll::?
dans l'exemple, nom_table est une variable chaine (qui peut varier, comme son nom l'indique)
Code:
1
2
3
4
5
6
7 PROCEDURE test(p_table IN varchar2) IS BEGIN EXECUTE IMMEDIATE 'INSERT INTO '||p_table||'(a,b,c) VALUES ( ''je comprends vite'',''mais'',''il faut m expliquer longtemps'')'; END ;
Lis le tuto de SheikYerbouti sur execute immediate tu comprendras mieux le fonctionnement ;)
http://sheikyerbouti.developpez.com/execute_immediate/