Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Informix
Informix Forum d'entraide Informix
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 12/10/2006, 10h47   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 2
Points : 0
Points : 0
Par défaut Recherche la position d'une string (INSTR)

Bonjour,

C'est mon premier message dans ce forum que je remercie d'avance...

Je débute en Informix après moultes années sous ORACLE...

Je suis à la recherche de la fonction équivalente INSTR (en ORA) mais sous Informix.

Je ne retrouve aucune information acuellement, merci pour votre aide.

.fr.
franzlebord est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 14h04   #2
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 11
Détails du profil
Informations personnelles :
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 11
Points : 12
Points : 12
déjà, va voir par là pour la bible de référence de toutes les fonctions, y a un chapitre sur les opérations sur chaine de caractère tu devrais trouver ton bonheur !

Ensuite j'y connais rien en ORACLE, par contre en infmx, pour trouver la position d'une chaine dans une autre, je ne sais pas faire, la fonction REPLACE permet de remplacer par contre une chaine par une autre.

Cela dit, développer une petite fonction stockée pour faire ça ne pose pas de pb :

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
 
 
-- Recherche de la position de la chaine strsrch
-- dans la chaine str
-- Retourne 0 si la chaine n'a pas ete trouvee
 
CREATE FUNCTION strpos(str char(40),strsrch char(40)) returning smallint
 
   define i,pos,lenstr,lenstrsrch smallint;
 
   let lenstrsrch = length(strsrch);
   let lenstr = length(str);
 
   IF lenstr=0 OR lenstrsrch=0 then RETURN 0; end IF;
 
   let pos=0;
   FOR i=1 TO lenstr
      IF substr(str,i,lenstrsrch)=strsrch then
        let pos=i;
        exit FOR;
      end IF;
   end FOR;
 
   RETURN pos;
 
end FUNCTION;
bdtrash est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 09h14   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 2
Points : 0
Points : 0
Merci c'est pratiquement cela, je vais mettre à jour la fonction pour que cela soit identique. Je la posterai dès que c'est fait.

Merci.
franzlebord est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h21.


 
 
 
 
Partenaires

Hébergement Web