Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2011, 10h18   #1
Membre du Club
 
Avatar de silverfab34
 
Inscription : mars 2006
Messages : 197
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2006
Messages : 197
Points : 56
Points : 56
Par défaut Erreur lors de l'execution de mon fichier SQL

Bonjour à tous,
Je ne connais pas grand chose en UNIX, je découvre et je dois executer un fichier SQL.
Après avoir transformer mon fichier au format UNIX en ligne de commande, j'essaye d'executer ce fichier SQL mais j'ai des erreurs qui me sont retournées :
Code :
1
2
3
4
line 3: DECLARE: command not found
line 4: syntax error near unexpected token `('
line 4: `PURGEDUREE NUMBER(12);'
Et voici le contenu de mon fichier :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
set serveroutput on

DECLARE
PURGEDUREE NUMBER(12);
PURGEDUREE:=30;
NUM_ROW NUMBER(12);
NUM_ROW:=0;
NUM_ROW_TOTAL NUMBER(12);
NUM_ROW_TOTAL:=0;
NB_ROW_COMMIT NUMBER(12);
NB_ROW_COMMIT:=500;

--Curseur sur les commandes Non Injectée datant de plus de 30 jours 
CURSOR cdePurge IS 
SELECT ID
FROM COMMANDE.TABLE_COMMANDE
WHERE DATE_ENREGISTREMENT > (sysdate - PURGEDUREE) AND ETAT_INJECTION = 'NON_INJ';

BEGIN
    dbms_output.PUT_LINE('Debut de la purge sur les commandes NON_INJ datant de plus de 30 jours');
      
    FOR CURRENT_ID in cdePurge LOOP
         -- Incrémentation du numéro de ligne courante
        NUM_ROW:=NUM_ROW+1;
         -- Incrémentation du numéro de ligne totale
        NUM_ROW_TOTAL:=NUM_ROW_TOTAL+1;
        -- effacement des references de la commande et etats
        delete from COMMANDE.TABLE_COMMANDE_DETAILS WHERE RID_COMMANDE=CURRENT_ID.ID;
        delete from COMMANDE.TABLE_COMMANDE_XML WHERE RID_COMMANDE=CURRENT_ID.ID;
 
        -- effacement de la commande
        delete from COMMANDE.TABLE_COMMANDE WHERE ID=CURRENT_ID.ID;
    
        -------------------
        -- commit partiel
        -------------------
        IF NUM_ROW>NB_ROW_COMMIT THEN
            NUM_ROW:=0;
            commit;
        END IF;
        ----------------------
        -- FIN commit partiel
        ----------------------
    END LOOP;
    dbms_output.PUT_LINE('Fin de la purge sur les commandes NON_INJ datant de plus de 30 jours, nb commandes purgées : ' || NUM_ROW_TOTAL);
    commit;
END;
/
Si quelqu'un peut m'expliquer mes erreurs et me dire si il y en a d'autres, merci d'avance !
silverfab34 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/03/2011, 14h47   #2
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 6 027
Points : 6 027
Bonjour.

C'est plus un problème lié au SGBDR qu'à Unix, je pense, il serait utile de nous le préciser.

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 24/03/2011, 07h04   #3
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
quelles sont les commandes exactes que tu as tapé ?
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 12h52   #4
Membre Expert
 
Avatar de jlliagre
 
Inscription : juin 2007
Messages : 964
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2007
Messages : 964
Points : 1 364
Points : 1 364
Citation:
Envoyé par silverfab34 Voir le message
j'essaye d'executer ce fichier SQL mais j'ai des erreurs qui me sont retournées :
C'est normal, tu essaie de faire exécuter des commandes SQL par le shell. Ce sont des langages et des syntaxes différents.
__________________
ɹǝsn *sıɹɐlos*
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/04/2011, 12h32   #5
Membre du Club
 
Inscription : septembre 2008
Messages : 37
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2008
Messages : 37
Points : 47
Points : 47
la ligne de commande pour executer un script toto.sql est la suivante :


sqlplus username/password@DataBaseName @ toto.sql


alors que toi, tu as directement fait interprété ton script par le shell...
qqcvd est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h32.


 
 
 
 
Partenaires

Hébergement Web