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 : lecture de chaine de caractère [ SQL Server, MSDE, SQL Express / Procédures Stockées ] (anspauldou)

vendredi 13 juin 2008 à 13:03:41 | lecture de chaine de caractère

anspauldou

Bonjour

Je voudrai un exemple de script devant me permettre de lire et me renvoyer une chaine de caractère contenue dans une variable dont voici un exemple

@Var1 = '2000 = 3000 * 4005'

Je veux pouvoir extraire 2000 puis = puis 3000 etc

Merci d'avance

vendredi 13 juin 2008 à 22:55:28 | Re : lecture de chaine de caractère

yann_lo_san

Salut,

Il existe certainement des fonctions pour faire ça, mais moi je l'ai fait à la main.
J'ai mis le code dans une fonction de table inline pour pouvoir l'appeler facilement.
Le table de retour contient une colonne compteur pour pouvoir extraire le champ de n'importe quelle position.
(table inline veut dire que c'est comme un tableau dans des language comme c++ ou c#)


-- APPEL DE LA FONCTION :

SELECT * FROM splitParBlanc('2000 = 3000     * 4005')


-- RESULTAT :

t_id             t_str
-------------------
1                2000
2                =
3                3000
4                *
5                4005

-- LA FONCTION :


CREATE FUNCTION splitParBlanc
(
 @strToSplit varchar(200)

RETURNS  @tbl_array table(t_id int identity(1,1), t_str varchar(35))
AS 
BEGIN
 
 -- compteur boucle
 DECLARE @i int
 SET @i = charindex(' ', @strToSplit)
 
 -- pour taille d'extraction
 DECLARE @increment int
 SET @increment = 0
 
 WHILE( @i > 0 )
 BEGIN
    -- départ de l'extraction
    DECLARE @start int
    SET @start = charindex(' ', @strToSplit, @increment+1)
    SET @start = @start - (@start - @increment)
 
    -- pour calculer la taille de l'extraction
    SET @increment =  charindex(' ', @strToSplit, @start+1)
 
    -- stocke valeur si champ non vide
    IF( substring(@strToSplit, @start+1, @increment- @start-1) <> ' ' )
         INSERT INTO @tbl_array(t_str)
         SELECT substring(@strToSplit, @start+1, @increment- @start-1)
 
    -- pour prochaine boucle ou fin
    SET @i = charindex(' ', @strToSplit, @increment+1)
  
    -- stocke le dernier bloc
    IF( @i <= 0 )
         INSERT INTO @tbl_array(t_str)
         SELECT substring(@strToSplit, @start+(@increment- @start)+1, len(@strToSplit)-@start-1)
   END

   RETURN
 
END

 




Cette discussion est classé dans : lecture, caractère, chaine, exemple


Répondre à ce message

Sujets en rapport avec ce message

lecture de chaine de caractère [ par anspauldou ] Bonjour   Je voudrai un script qui me permettra d'incrire dans chaque colonne de ma table une chaine de caractère '3000 = 2000 * 1000' c'est à dire in Conversiond'une chaine de caractère en number [ par stephsk09 ] Bonjour, je pose cette question car j'ai beau retourner le problème dans tout les sens je ne trouve pas de solution.Voila mon problème,dans une procéd boite de dialogue utilisateur postgre [ par gr43 ] Salut,Cela fait un petit moment que je cherche le caractère équivalent de & à Oracle sous Postgre en vain. Ce caractère permet sous oracle d'ouvrir un problème d'opérande dans le résultat de ma chaine sql [ par beegeezzz ] Bonjour tout le monde,J'ai un petit souci avec cette chaine SQL :SELECT NOTEFROM inscrits_enWHERE MATRICULE_ETIN (SELECT DISTINCT MATRICULE_ET, NOM_ET Recherche globale d'une chaine dans un schéma [ par mr_foxy ] Bonjour, Je cherche une requête permettant de parcourir toutes les tables d'un schéma à la recherche d'une chaine de caractère.En fait, je voudrais en Liste des mots d'une colonne [ par Yenapa ] Bonjour a tousJe souhaite construire une liste des mots à partir d'une tableN'ayant rien trouvé sur le net pour faire ça, je pense devoir utiliser une Lecture d'un fichier texte a partir d'une procedure stockée [ par OmarEK ] Bonjour tout le monde,je voudrais savoir comment faire pour créer une procedure stockée qui permet de prendre des données a partir d'un fichier ".txt" XQuery et SQL server [ par Migs ] Bonjour, je débute en XQuery et malheureusement la requête que je dois réalisée n'est pas des plus simples, si quelqu'un pouvait m'aider... :( SQL EXPRESS 2005 : création d'un user / login en lecture sur plusieurs bases. [ par MAQFAB ] Bonjour,Je voudrais créer, par code SQL envoyé via ADO, un login pour un accès en lecture sur 5 BD d'une instance (master, BD1, BD2, BD3, BD4).J'ai ré Vues en lecture seule [ par casy ] Salut à tous,Je suis en train de créer des vues sous SQL2005 pour mettre à dispositions des données pour des applications Accès à partir de bases SQLS


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,250 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é.