Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2012, 12h59   #1
bsidy1
Nouveau Membre du Club
 
Avatar de bsidy1
 
Inscription : décembre 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 110
Points : 33
Points : 33
Par défaut Créer une table en PL/SPL

Bonjour
Je voudrai créer une table dans mon script pl/sql et j'ai tjrs des erreurs
ci dessous le code
Code :
1
2
3
4
5
6
7
8
9
 
 
   EXECUTE IMMEDIATE   CREATE TABLE  BONUS_PROGRAMME      AS     
              (   SELECT   *  FROM 
                  (    SELECT  (SELECT (sysdate-7) FROM dual )  AS the_date,  TXNLPATTERNA AS MOBILE,     sum(cost) AS MONTANT, SUM(BILLED_DURATION) AS DUREE   FROM tmp_revenu_week 
                       WHERE CALLBNUMBER IN ('derede', 'dddee' ,'Cfer' ,'dddddd', 'derE' ,'ffff' , 'fzzzzz', 'zzzzz' ,'dere','sdsdsd' ,'Sdse') AND bltpid='1' AND PRDTID IN (6,10,14) GROUP BY   TXNLPATTERNA
                  )  
                      WHERE MONTANT >4000 AND MONTANT < 20001 AND ROWNUM < 11001 
              )   ;
je sais compter sur vous tous
__________________
Ecouter, observer avant de parler c'est être responsable
bsidy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 13h19   #2
mnitu
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 4 104
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 4 104
Points : 7 997
Points : 7 997
Execute immediate
C'est une mauvaise idée de créer des tables en PL/SQL.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 13h54   #3
bsidy1
Nouveau Membre du Club
 
Avatar de bsidy1
 
Inscription : décembre 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 110
Points : 33
Points : 33
Je vois bien le mal mais je voudrai corriger ces erreurs
est ce que qlqun peut m'aider
__________________
Ecouter, observer avant de parler c'est être responsable
bsidy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 14h48   #4
LBO72
Membre confirmé
 
Avatar de LBO72
 
Inscription : mai 2007
Messages : 405
Détails du profil
Informations personnelles :
Âge : 44
Localisation : France

Informations forums :
Inscription : mai 2007
Messages : 405
Points : 296
Points : 296
Bonjour,

Le execute immediate fonctionne en PlSql. Essaye ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
BEGIN
 EXECUTE IMMEDIATE 
              'CREATE TABLE  BONUS_PROGRAMME      AS
                  (SELECT   *  FROM
                         (SELECT  (SELECT (sysdate-7) FROM dual )  AS the_date,  TXNLPATTERNA AS MOBILE,     sum(cost) AS MONTANT, SUM(BILLED_DURATION) AS DUREE   FROM tmp_revenu_week
                          WHERE CALLBNUMBER IN (''derede'', ''dddee'' ,''Cfer'' ,''dddddd'', ''derE'' ,''ffff'' , ''fzzzzz'', ''zzzzz'' ,''dere'',''sdsdsd'' ,''Sdse'') AND bltpid=''1'' AND PRDTID IN (6,10,14)
                          GROUP BY   TXNLPATTERNA )
                   WHERE MONTANT >4000 AND MONTANT < 20001 AND ROWNUM < 11001 )   ;';
END;
/
LBO72 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/12/2012, 14h51   #5
LBO72
Membre confirmé
 
Avatar de LBO72
 
Inscription : mai 2007
Messages : 405
Détails du profil
Informations personnelles :
Âge : 44
Localisation : France

Informations forums :
Inscription : mai 2007
Messages : 405
Points : 296
Points : 296
Essaye plutôt cela : Il faut supprimer le ; du execute immediate :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
BEGIN
 EXECUTE IMMEDIATE 
              'CREATE TABLE  BONUS_PROGRAMME      AS
                  (SELECT   *  FROM
                         (SELECT  (SELECT (sysdate-7) FROM dual )  AS the_date,  TXNLPATTERNA AS MOBILE,     sum(cost) AS MONTANT, SUM(BILLED_DURATION) AS DUREE   FROM tmp_revenu_week
                          WHERE CALLBNUMBER IN (''derede'', ''dddee'' ,''Cfer'' ,''dddddd'', ''derE'' ,''ffff'' , ''fzzzzz'', ''zzzzz'' ,''dere'',''sdsdsd'' ,''Sdse'') AND bltpid=''1'' AND PRDTID IN (6,10,14)
                          GROUP BY   TXNLPATTERNA )
                   WHERE MONTANT >4000 AND MONTANT < 20001 AND ROWNUM < 11001 )   ';
END;
/
Cdlt,

LBO72
LBO72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 11h40   #6
bsidy1
Nouveau Membre du Club
 
Avatar de bsidy1
 
Inscription : décembre 2006
Messages : 110
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 110
Points : 33
Points : 33
bonjour a tout le monde

j'ai opté pour le truncate
merci infiniment
__________________
Ecouter, observer avant de parler c'est être responsable
bsidy1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h26.


 
 
 
 
Partenaires

Hébergement Web