Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : procédure stocké + clause like % [ Base de données / Oracle ] (djerbino)

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é 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 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 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 ACCESS et procédure stockée [ par emkka ] Bonjour,J'utilise une base de données ACCESS dans une application web Dot Net 2.0, sauf que j'ai l'habitude de travailler avec une base SQL server don SQL opérateur logique et filter [ par tbbuim1 ] Bonjour à tous,je cherche à exclure d'un champ les textes de la form404ABC ou 404123Dans une liste du type 401123, 402123, 403123, 404123, 405AB123... Procedure stockée pour changer toutes les chaines d'une base de données par une autre [ par tom974 ] Voici une procédure stockée en Transact-SQL qui permet : De remplacer toutes les occurrences d'une chaine quelconque par une autre da aide pour requete en SQL sur ASP.NET [ par pierreee ] bonjour, déjà un grand bravo pour ce super sitej ai une question, je fait un requete en ASP.NET avec Visual Studio 2005, après quelle galère,je suis a Procédure stockéees [ par mo877 ] Bonsoir à tousJe voulais savoir comment peut-on exécuter une procédure stockée en utilsant comme paramètres les entrées de TextBox.est-ce-que je peux Linq To SQL Procédure Stockée [ par StiriX ] Bonjour à tous !Alors j'me poser une question de bon matin et impossible de trouver ma réponse donc go go go je vous la pose :Je dois gérer des suppor procedure stocké [ par siham510 ] salut a tous la famille de code source SVP comment <span style="FONT-SIZE: 12pt; FONT-FAMILY: Times; mso-bidi-font-family: Tahoma; mso-fareast-font-fa


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.