Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1658 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle&PHP] Execution de procedures stockees -> à voir !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle&PHP] Execution de procedures stockees -> à voir !

n°365198
Masure
Posté le 17-04-2003 à 16:52:10  profilanswer
 

Encore mon oracle, mon php et moi   :pt1cable:  
 
Je cherche a encapsuler mes procedure stockees oracle dans des fonctions php pour plus de securité et de facilité (sisi).
 
Par contre je suis desolé, je ne vais pas donner une superbe explication comme a l accoutumée car je suis fatigué  :sleep:  
 
A la place voici du code  :D  
 

Code :
  1. $stmt = OCIParse($connection,"execute AJOUTER_UTILISATEUR(:login, :mdp, :nom_reseau, :ip, :nom, :prenom, :tel, :email, :puce)" ) ;
  2.  OCIBindByName($stmt, ":login", &$login, -1);
  3.  OCIBindByName($stmt, ":mdp", &$mdp, -1);
  4.  OCIBindByName($stmt, ":nom_reseau", &$nom_reseau, -1);
  5.  OCIBindByName($stmt, ":ip", &$ip, -1);
  6.  OCIBindByName($stmt, ":nom", &$nom, -1);
  7.  OCIBindByName($stmt, ":prenom", &$prenom, -1);
  8.  OCIBindByName($stmt, ":tel", &$tel, -1);
  9.  OCIBindByName($stmt, ":email", &$email, -1);
  10.  OCIBindByName($stmt, ":puce", &$puce, -1);
  11.  OCIExecute($stmt);


 
Info qd meme : si j'affiche la requete parsée, que je la copie dans sqlplus, evidement ca marche :), spa drole sinon  :cry:  
 
Pour les inquiets, avant d essayer via ocibindbyname j'ai procédé a l'ancienne et j ai toujours un message d'erreur qui est :  
 

Code :
  1. Warning: OCIStmtExecute: ORA-00900: Instruction SQL non valide in U:\Informatique\molines\portail\setup\index.php on line 14


 
la doc concernant ce message :  
 

Code :
  1. ORA-00900 invalid SQL statement
  2. Cause: The statement is not recognized as a valid SQL statement. This error can occur if the Procedural Option is not installed and a SQL statement is issued that requires this option (for example, a CREATE PROCEDURE statement). You can determine if the Procedural Option is installed by starting SQL*Plus. If the PL/SQL banner is not displayed, then the option is not installed.
  3. Action: Correct the syntax or install the Procedural Option.


Message édité par Masure le 17-04-2003 à 17:15:07
mood
Publicité
Posté le 17-04-2003 à 16:52:10  profilanswer
 

n°365266
Masure
Posté le 17-04-2003 à 17:13:06  profilanswer
 

Bon apres une apres midi j'ai trouve  :fou:, je vais donc vous livrer le secret, car c'est assez tordu.
 
Normalement sous sqlplus on tape :
 

Code :
  1. execute NOM_PROCEDURE (parametres);


 
donc logiquement si on veut faire ca via php on fait un :
 

Code :
  1. ociParse ($conn, "execute NOM_PROCEDURE (parametres);" )


 
Mais non... c'est trop cher apparament. Meme en essayant toutes les variantes de cette forme : A MARCH'PAS
 
LA SOLUTION
 

Code :
  1. ociParse ($conn, "begin NOM_PROCEDURE (parametres); end ;" )


 
 [:yaisse2]


Message édité par Masure le 17-04-2003 à 17:13:52
n°366251
tomlameche
Et pourquoi pas ?
Posté le 18-04-2003 à 12:01:47  profilanswer
 

masure a écrit :

Bon apres une apres midi j'ai trouve  :fou:, je vais donc vous livrer le secret, car c'est assez tordu.
 
Normalement sous sqlplus on tape :
 

Code :
  1. execute NOM_PROCEDURE (parametres);


 
donc logiquement si on veut faire ca via php on fait un :
 

Code :
  1. ociParse ($conn, "execute NOM_PROCEDURE (parametres);" )


 
Mais non... c'est trop cher apparament. Meme en essayant toutes les variantes de cette forme : A MARCH'PAS
 
LA SOLUTION
 

Code :
  1. ociParse ($conn, "begin NOM_PROCEDURE (parametres); end ;" )


 
 [:yaisse2]


C'est pourquoi il faut utilser TOAD plutot que SQL*PLUS, car ainsi tu aurai trouver en 1/2 minutes ...  [:spamafote]


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°366280
Masure
Posté le 18-04-2003 à 12:21:39  profilanswer
 

tomlameche a écrit :


C'est pourquoi il faut utilser TOAD plutot que SQL*PLUS, car ainsi tu aurai trouver en 1/2 minutes ...  [:spamafote]  


 
Bah moi je connais pas :/

n°366305
tomlameche
Et pourquoi pas ?
Posté le 18-04-2003 à 13:11:36  profilanswer
 

masure a écrit :


 
Bah moi je connais pas :/


Voir ici : http://www.toadsoft.com
Avec TOAD, pour lancer une procédure stocké, il faut justement faire
begin
nom_prc ( parametre);
end;
Et le execute n'est pas reconnu. Par contre, je sais pas pourquoi   :D


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°366341
Masure
Posté le 18-04-2003 à 13:47:12  profilanswer
 

tomlameche a écrit :


Voir ici : http://www.toadsoft.com
Avec TOAD, pour lancer une procédure stocké, il faut justement faire
begin
nom_prc ( parametre);
end;
Et le execute n'est pas reconnu. Par contre, je sais pas pourquoi   :D  


 
Ah ben alors cme change rien... je fais pareil.
 
Sinon tant que je te tiens, un truc que j'arrive pas a faire c'est executer le contenu d'un .sql via ociParse de PHP. J'ai essayé le @, le start et le @@ mais aucun ne passe alors que sous sqlplus ca marche.

n°366448
tomlameche
Et pourquoi pas ?
Posté le 18-04-2003 à 14:46:28  profilanswer
 

masure a écrit :


 
Ah ben alors cme change rien... je fais pareil.
 
Sinon tant que je te tiens, un truc que j'arrive pas a faire c'est executer le contenu d'un .sql via ociParse de PHP. J'ai essayé le @, le start et le @@ mais aucun ne passe alors que sous sqlplus ca marche.


Le problème, c'est qu'avec ociParse, tu ne peux qu'exécuter des commandes SQL standard, et la lecture d'un fichier .sql ne doit pas en faire partie.
Je cherche deux minutes, et je repost un truc si je trouve une solution.


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°366613
Masure
Posté le 18-04-2003 à 16:20:39  profilanswer
 

C'est que j'ai cru comprendre apres mes nombreux essais, ociparse valide du code sql. Moi j'essaie d'y faire executer des commandes sqlplus.
 
J'ai bien fait une fonction qui eclate un fichier sql en commandes sql simples mais j'aime pas cette methode...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle&PHP] Execution de procedures stockees -> à voir !

 

Sujets relatifs
D'ou viens le problème? installation PHP ?? je vois pas la...[PHP]Changement de date anglais/francais
[PHP] Appeler un fichier source situé sur un autre serveur.[PHP] sessions
impossible de trouver l'erreure....[PHP]peut-on mettre du code PHP dans un script JavaScript? et inversement ?
[Oracle] SQL Plus me fait des blagues, ca me fait pas rire[PHP] calcule de date du lendemain par rapport a une date donnée!
[PHP] Mon source s'affiche dans la page ! help plz ( code inside )Recherche codeur PHP
Plus de sujets relatifs à : [Oracle&PHP] Execution de procedures stockees -> à voir !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR