begin process at 2012 02 14 05:28:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP / ASP3

 > 

Base de données

 > 

Oracle

 > 

procédure stocké + clause like %


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

procédure stocké + clause like %

lundi 21 avril 2008 à 12:07:01 | procédure stocké + clause like %

djerbino

bonjour je galere depuis pas mal de temp et je je compte sur votre aide
je suis entrain de realiser une procédure stocké sous oracle 9i mais jai un probleme dans la clause like

voici le code


/*********creation de la procédure(dans le console plsql)**************/


create or replace procedure d
(
nom IN varchar,
prenom OUT varchar,villa OUT varchar
)
is

BEGIN
  SELECT adresse,ville INTO prenom,villa FROM touhami.client
         WHERE nom_societe LIKE '%'+ nom +'%' ;
end;


jusqua la tous va bien et j'ai comme résultat procédure créé
mais dans l'appel je trouve aucun enregistrement par contre si j'utilse cette ligne : WHERE nom_societe LIKE  nom  ; tous va bien mais jai besoin de '%'
est ce que quelqu'un a une idée??


/*********appel de la procédure(dans le code behind)**************/



        Dim MaChaineDeConnection As String = "provider = MSDAORA ; data source = recrut;User ID=touhami;Password=glmaster;Unicode=True"
        Dim MaConnexion As New OleDbConnection(MaChaineDeConnection)
        Dim MaRequete As String = "d"
        Dim MaCommande As New OleDbCommand(MaRequete, MaConnexion)
        MaCommande.CommandType = CommandType.StoredProcedure
        Dim MonParametre, MonParametre1 As OleDbParameter
      
        MonParametre = MaCommande.Parameters.Add("nom", OleDbType.VarChar, 100)            'defenir le premier variable  d'entré
        MonParametre.Value = "infoweb business services"
   
        MonParametre = MaCommande.Parameters.Add("prenom", OleDbType.VarChar, 20)           'defenir le premier variable de sortie
        MonParametre.Direction = ParameterDirection.Output
      
        MonParametre1 = MaCommande.Parameters.Add("villa", OleDbType.VarChar, 20)          'defenir le deuxieme variable de sortie

        MonParametre1.Direction = ParameterDirection.Output

        MaConnexion.Open()
        MaCommande.ExecuteNonQuery()
        Response.Write((MonParametre.Value))                                         'affiche la premiere variable
         Response.Write((MonParametre1.Value))                                       'affiche la deuxieme variable
        MaConnexion.Close()

pour le premier cas j'ai les résultat affiché mais avec like '%' + nom +'%' sa me donne rien
d'apres mes recherche la clause like '%' + nom +'%' s'éxécute sous sql server mais c quoi son équivalent sous oracle 9 i
merci pour votre reponses
lundi 21 avril 2008 à 15:18:23 | Re : procédure stocké + clause like %

nhervagault

Administrateur CodeS-SourceS
Salut,

Ce qui peut être fait c'est la place d'envoyer nom tu envoie 'nom%' comme parameter et tu l'enleves le % de ta procedure stockée.

Bon coding
lundi 21 avril 2008 à 15:40:17 | Re : procédure stocké + clause like %

djerbino

tu peu me modifier le code de ma procédure stp??
lundi 21 avril 2008 à 15:48:14 | Re : procédure stocké + clause like %

djerbino

Merci bien sa fonctionne mnt
merci
lundi 21 avril 2008 à 18:41:12 | Re : procédure stocké + clause like %

djerbino

sa fonctionne dans le cas ou ma requete retourne un seul variable mais le proleme quand ma procédure retourne plusieur valeurs

que doit-je faire

modifier ma procédure??

create or replace procedure d
(
nom IN varchar,
prenom OUT varchar,villa OUT varchar
)
is

BEGIN
  SELECT adresse,ville INTO prenom,villa FROM touhami.client
         WHERE nom_societe LIKE  nom 
end;

que faire si jai plusieur adresse et ville en résultat

lundi 21 avril 2008 à 18:53:46 | Re : procédure stocké + clause like %

nhervagault

Administrateur CodeS-SourceS
Salut

C'est pas la bonne maniere de lire

Il faut faire un executeReader
et apres une boucle sur le datareader

http://msdn2.microsoft.com/fr-fr/library/9kcbe65k(VS.80).aspx

Bon coding
mardi 22 avril 2008 à 10:16:31 | Re : procédure stocké + clause like %

djerbino

merci j'apprécie vraiement ton aide
mais j'ai toujour le meme probleme
voici mon code complet

/****************corp de procédure**********************/


create or replace procedure recherche_simple_sans_ville
(
titre IN varchar,metier OUT varchar,objectif OUT varchar,region OUT varchar,ville OUT varchar,type_de_contrat OUT varchar,duree OUT varchar,qualification OUT varchar,langue OUT varchar,publication OUT varchar

)
is

BEGIN
  SELECT metier,objectif,region,ville,type_de_contrat,duree,qualification,langue,publication INTO metier,objectif,region,ville,type_de_contrat,duree,qualification,langue,publication  FROM touhami.cv
         WHERE metier LIKE titre ;
end;

/**************code asp.net(vb.net) appel de procédure*********/

Dim MaChaineDeConnection As String = "provider = MSDAORA ; data source = recrut;User ID=touhami;Password=glmaster;Unicode=True"

Dim MaConnexion As New OleDbConnection(MaChaineDeConnection)

Dim MaRequete As String = "recherche_simple_sans_ville"

Dim MaCommande As New OleDbCommand(MaRequete, MaConnexion)

MaCommande.CommandType = CommandType.StoredProcedure

Dim MonParametre, MonParametre1, MonParametre9, MonParametre2, MonParametre3, MonParametre4, MonParametre5, MonParametre6, MonParametre7, MonParametre8 As OleDbParameter

MonParametre = MaCommande.Parameters.Add(

"titre" , OleDbType.VarChar, 100)

MonParametre.Value =

"%" & titre.Text & "%"

MonParametre9 = MaCommande.Parameters.Add(

"metier" , OleDbType.VarChar, 20)

MonParametre9.Direction = ParameterDirection.Output

MonParametre1 = MaCommande.Parameters.Add(

"objectif" , OleDbType.VarChar, 20)

MonParametre1.Direction = ParameterDirection.Output

MonParametre2 = MaCommande.Parameters.Add(

"region" , OleDbType.VarChar, 20)

MonParametre2.Direction = ParameterDirection.Output

MonParametre3 = MaCommande.Parameters.Add(

"ville" , OleDbType.VarChar, 20)

MonParametre3.Direction = ParameterDirection.Output

MonParametre4 = MaCommande.Parameters.Add(

"tupe_de_contrat" , OleDbType.VarChar, 20)

MonParametre4.Direction = ParameterDirection.Output

MonParametre5 = MaCommande.Parameters.Add(

"duree" , OleDbType.VarChar, 20)

MonParametre5.Direction = ParameterDirection.Output

MonParametre6 = MaCommande.Parameters.Add(

"qualification" , OleDbType.VarChar, 20)

MonParametre6.Direction = ParameterDirection.Output

MonParametre7 = MaCommande.Parameters.Add(

"langue" , OleDbType.VarChar, 20)

MonParametre7.Direction = ParameterDirection.Output

MonParametre8 = MaCommande.Parameters.Add(

"publication" , OleDbType.VarChar, 20)

MonParametre8.Direction = ParameterDirection.Output

MaConnexion.Open()

Dim myReader As OleDbDataReader = MaCommande.ExecuteReader()



lorsque jai un seul enregistrement dans la table CV pas de probleme mais quand je possede plusieur enregistrement voici le message d'erreur qui s'affiche:
ORA-01422: l'extraction exacte ramène plus que le nombre de lignes demandé
ORA-06512: à "TOUHAMI.RECHERCHE_SIMPLE_SANS_VILLE", ligne 9
ORA-06512: à ligne 1
mardi 22 avril 2008 à 11:37:24 | Re : procédure stocké + clause like %

nhervagault

Administrateur CodeS-SourceS
Comme dis dans mon précédent mail,
il ne faut pas lire les enregistrements par les parametres de sortie mais par l'execute reader.

http://xo.developpez.com/tutoriel/dotnet/oracle/odt/

Chapitre 6

Bon coding
mardi 22 avril 2008 à 11:40:27 | Re : procédure stocké + clause like %

djerbino

bon j'ai trouvé la solution de cet erreur en modifiant ma procédure comme suit:(avec les rowtype)


create or replace procedure recherche_simple_sans_ville
(
titre IN varchar,resultat OUT cv%Rowtype

)
is

BEGIN
  SELECT * INTO resultat FROM touhami.cv
         WHERE metier LIKE titre ;
end;


mais j'ai un autre probleme lors de l'appel de cette procédure
le problème est dans la ligne suivante:

MonParametre2 = MaCommande.Parameters.Add("resultat", OleDbType.VarChar, 20)
 qui a pour message d'erruer le suivant

ORA-06550: Ligne 1, colonne 7 :
PLS-00306: numéro ou types d'arguments erronés dans appel à 'RECHERCHE_SIMPLE_SANS_VILLE'
ORA-06550: Ligne 1, colonne 7 :
PL/SQL: Statement ignored
Ce fournisseur ne prend pas en charge les procédures/fonctions stockées PL/SQL avec les arguments RECORD ou TABLE.

alors quoi faire??
merci


Cette discussion est classée dans : like, procédure, macommande, varchar, monparametre


Répondre à ce message

Sujets en rapport avec ce message

Problème mssql : procédure stoquées [ par Focalizer ] Bonjour,J'utilise un forum téléchargé qui utilise des procédures stoquées (sous mssql).J'aimerais bien utiliser ces procédure mais je ne comprend pas appel d'une procédure stocké oracle 9i [ par djerbino ] bonjour voici ma procédure stocké avec un curseur create or replace procedure P_listeproduit (titre in varchar,resultat out varchar2) is cursor Probleme de procedure stockée [ par ManuAntibes ] BonjourJe veux ajouter des enregistrements sur une table "Client", je travail avec Web developper express 2005 en ASP.net.J'ai fais une procédure stoc problème variable Session avec procedure stockée [ par boubou77777 ] Bonjour,j'ai un probleme pour attribuer une variable de Session à une variable qui sera inserée dans une table : ALTER PROCEDURE dbo.diffuserDemande @ Création de formulaire dynamique [ par biiru ] En fait j'ai un gros souci ou je suis bloqué j'essaie de faire un formulaire dynamique (les questions du formulaire se trouvant en base de donnée) Don Procédure stockée [ par KC62 ] Bonjour à tous, voila deux jours que je galère sur un problème de procédure stockée ... Je cherche a récupérer l'identifiant du contact crée. Cela par Procedure qui a trop d'arguments specifiés [ par bootchoz ] Salut a vous ! J'obtiens ce message d'erreur :Procedure or function InsertRole has too many arguments specifiedvoila une partie de mon GridView & procédure [ par elpens ] Bonjour,Je suis un peu paumé là:Je veux binder un gridView avec une procédure stockée (qui fonctionne, je suis sûr)Pour ce, j'ai procédé de la sorte.. asp:SqlDataSource + InsertParameters + valeur de retour (procédures stockées) [ par cfeltzsni ] Bonjour, j'utilise dans un formulaire aspx un datasource qui est lié à une procédure stockée. Cette procédure stockée ajoute un élément à une table, e Update base de donnes sql [ par slyderkiller ] slt a ttJ'ai un petit probleme pour un update dans une table sql, j'ai le même code pour un insert et sa marche bien.si vous avez la sollution merci.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales