Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2007, 16h01   #1
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
Par défaut [Debutant] Execution du PL/SQL

Salut a tous,

Voici mes debuts en PL/SQL (aïe !!!).
Je suis en train de suivre le tutoriel de Sheik Yerbouti (BRAVO !!!)

Voici donc une procedure toute simple que j'ai crée dans Oracle 10g :

Code :
1
2
3
4
5
6
7
8
9
10
CREATE OR REPLACE procedure "TEST"
(  nbre  NUMBER,
   auj DATE,
   nom IN out VARCHAR2
   )
IS
begin
nom := 'Hello World !';
DBMS_OUTPUT.PUT_LINE( Nom );
end test;
Je pense que ma question va faire peur mais bon...
Tout simplement, ou est ce que je peux executer cette procedure ? Ou puis je voir le resultat ?

Merci a vous

Mario
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 16h16   #2
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut,

Voici un lien qui va t'aider
http://lifc.univ-fcomte.fr/~lasalle/OracleV7/page8.htm
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 17h00   #3
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
OK ca m'a bien aidé.
Je me suis donc connecté a sqlplus sur MS DOS....

Puis lancer EXECUTE TEST


LA, je ne sais pas pourquoi j'ai un resultat en allemand!!!
Citation:
FEHLER in Zeile 1: ORA-06550: Zeile 1, Spalte 12: PLS-00103: Fand das Symbol "SQL" als eines der folgenden erwartet wurde: <an identifier> <a double-quoted delimited-identifier> delete exists prior Das Symbol "<an identifier> wurde vor "SQL" eingefügt, um fortzufahren.
En tout cas, j'ai une erreur alors que dans Oracle, je n'en ai aucune...
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 17h37   #4
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Code :
1
2
3
il faut l'executer avec ces paramétres 
 
sql>exec TEST(1,sysdate,'Premier essai');
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 11h26   #5
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
Citation:
Envoyé par salim11
Salut,

Code :
1
2
3
il faut l'executer avec ces paramétres 
 
sql>exec TEST(1,sysdate,'Premier essai');
Voici ce que jai essayé.
Ca n'a pas l'air de fonctionner.

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
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
 
C:\Documents AND Settings\map>sqlplus map/welcome
 
SQL*Plus: Release 10.2.0.1.0 - Production ON Tue Jul 17 11:24:37 2007
 
Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.
 
 
Connected TO:
Oracle DATABASE 10g Express Edition Release 10.2.0.1.0 - Production
 
SQL> execute TEST
BEGIN TEST; END;
 
      *
ERROR at line 1:
ORA-06550: line 1, COLUMN 7:
PLS-00306: wrong number OR types of arguments IN call TO 'TEST'
ORA-06550: line 1, COLUMN 7:
PL/SQL: Statement ignored
 
 
SQL> execute TEST(1, sysdate, 'essai numero 1')
BEGIN TEST(1, sysdate, 'essai numero 1'); END;
 
                       *
ERROR at line 1:
ORA-06550: line 1, COLUMN 24:
PLS-00363: expression 'essai numero 1' cannot be used AS an assignment target
ORA-06550: line 1, COLUMN 7:
PL/SQL: Statement ignored
Merci en tout cas de te pencher sur le sujet...

Mario
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 11h46   #6
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
ca me semble un peu plus juste de cette maniere

Code :
1
2
3
4
5
6
7
8
9
10
CREATE OR REPLACE procedure "TEST"
IS
nbre NUMBER;
auj DATE;
nom VARCHAR2(10);
 
begin
nom := 'Hello';
DBMS_OUTPUT.PUT_LINE( Nom );
end test;
Mais le resultat sur SQLPLUS me donne juste

Code :
PL/SQL Procedure successfully completed
J'aurais bien voulu voir s'afficher "Hello"

Est ce possible ?
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 13h25   #7
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 14h59   #8
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
Citation:
Envoyé par Magnus

Merci pour ce code que je venais juste de trouver apres avoir posté ma reponse.
Ca fonctionne tres bien...

MERCI MERCI MERCI
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 16h41   #9
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
J'ai quand meme une question.
Les tutorials parlent de la partie DECLARATIVE initialisé par un mot clé DECLARE...

Ou pourrais-je mettre cette donnée dans ma procedure ?

Est il possible de specifier SET SERVEROUPUT ON directement dans la procedure TEST que j'ai crée ?
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 16h52   #10
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Tu as déja une partie DECLARATIVE : c'est ou tu déclare tes variables !

Le DECLARE n'est utile que pour les blocs anonymes PL/SQL (c'est à dire à executer directement en SQL, par exemple
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SQL>
  1  DECLARE
  2  t NUMBER:=1;
  3  BEGIN
  4  DBMS_OUTPUT.PUT_LINE('HELLO');
  5* END;
  6 /
SQL>
HELLO
 
PL/SQL procedure successfully completed.
 
SQL>
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 16h55   #11
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 217
Points : 4 217
Je crois que dans le BEGIN, tu n'as qu'à mettre
Code :
DBMS_OUTPUT.ENABLE (50000);
50000 étant le nb de mémoire à utiliser, pour ton cas tu peux réduire.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 10h25   #12
Membre régulier
 
Inscription : août 2006
Messages : 307
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2006
Messages : 307
Points : 78
Points : 78
Je ne peux remercier tout le monde pour toutes ces precisions...
LP-mpascolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h45.


 
 
 
 
Partenaires

Hébergement Web