IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Récupération texte depuis la base de données


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut Récupération texte depuis la base de données
    Bonjour,

    Je suis entrain d'utiliser une base de donnés Ms Sql-Server 2008 et je possède plusieurs paragraphes dans un texte qui possèdent des style .... je veux savoir comment je peux récupérer le contenu d'une paragraphe avec son style au niveau de base ?Est-ce-que c'est possible ?

    car je possède plusieurs paragraphes que je dois les importer pour un traitement ultérieur et donc je veux les récupérer avec leurs styles.

    Merci

  2. #2
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Les textes sont stockés dans une seule colonne en base j'imagine? Ils sont stocké comment, en texte pur ou bien en html ou autre?

    Il faudrait un exemple afin de pouvoir t'aider stp.
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    Euh j'ai pas encore stocké mais au fait imaginons que j'ai deux paragraphes avec des styles et tout et j'aimerais les stocker dans un seul champs d'une colonne.il sont des textes pur normalement

  4. #4
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Donc en fait tu veux savoir comment couper le texte en plusieurs parties pour l'insérer en base.

    Il faut donc que le texte ait un séparateur unique entre les paragraphe. Il faut choisir / créer ce séparateur du coup. Par exemple tu peux dire qu'une paragraphe et définit par deux retours. Avec ces info tu vas pouvoir utiliser des commandes CHARINDEX pour couper. Par contre si tu as plusieurs paragraphes il va falloir les inserer dans une table de travail au début puis couper et inserer chaque paragraphe de façon procédurale. Peut-être avec un curseur

    Ca crée une jolie petite usine à gaz.

    A mon avis il vaut mieux faire couper le texte avant ou après l'insertion en base.
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    Au fait je possède un texte de 32 pages donc je vais découper tout le texte en paragraphes et lors de l’invocation de ce texte est-ce-que je garde la mise en forme ou non ? sinon il y a un tuto concernant le découpage et l'insertion d'un tel texte car c'est ma première fois et je suis très basique dans les notions de base de données
    Merci

  6. #6
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Ok, bien que je pense que ce n'est pas très propre de traiter ce cas en SQL voici le code qui va pouvoir t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    SELECT
    	'<p>Microsoft SQL Server propose plusieurs fonctionnements&nbsp;:</p>
    <h3><span id="Langages" class="mw-headline">Langages</span><span class="mw-editsection">[<a title="Modifier la section : Langages" href="/w/index.php?title=Microsoft_SQL_Server&amp;action=edit&amp;section=2">modifier</a>]</span></h3>
    <p>Pour les requêtes, SQL Server utilise <a title="Transact-SQL" href="/wiki/Transact-SQL">T-SQL</a> (Transact-SQL), il s''agit d''une implémentation de <a title="Structured Query Language" href="/wiki/Structured_Query_Language">SQL</a> qui prend en charge les procédures stockées et les déclencheurs (<i>trigger</i>). Le <a title="Transact-SQL" href="/wiki/Transact-SQL">T-SQL</a> est incompatible avec le <a title="PL/SQL" href="/wiki/PL/SQL">PL/SQL</a> d''<a title="Oracle Database" href="/wiki/Oracle_Database">Oracle</a>.</p>
    <p>Pour les transferts de données, SQL Server utilise le format TDS (Tabular Data Stream) qui a été implémenté dans d''autres bases de données (en particulier dans son homologue <a title="Sybase" href="/wiki/Sybase">Sybase</a>) et dont les spécifications sont publiques. Une implémentation <a class="mw-redirect" title="Open Source" href="/wiki/Open_Source">Open Source</a> d''un client TDS est disponible et constitue la base du client SQL Server du projet <a title="Mono (logiciel)" href="/wiki/Mono_(logiciel)">Mono</a>&nbsp;: <i>FreeTDS</i>.</p>
    <h3><span id="Relations" class="mw-headline">Relations</span><span class="mw-editsection">[<a title="Modifier la section : Relations" href="/w/index.php?title=Microsoft_SQL_Server&amp;action=edit&amp;section=3">modifier</a>]</span></h3>
    <p>SQL Server est un <a title="Système de gestion de base de données" href="/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">SGBD</a> relationnel. Il est possible de définir des relations entre les tables de façon à garantir fortement l''intégrité des données qui y sont stockées. Ces relations peuvent être utilisées pour modifier ou supprimer en chaîne des <a title="Enregistrement (informatique)" href="/wiki/Enregistrement_(informatique)">enregistrements</a> liés.</p>
    <h3><span id="Transactions" class="mw-headline">Transactions</span><span class="mw-editsection">[<a title="Modifier la section : Transactions" href="/w/index.php?title=Microsoft_SQL_Server&amp;action=edit&amp;section=4">modifier</a>]</span></h3>
    <p>SQL Server est un <a title="Système de gestion de base de données" href="/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">SGBD</a> transactionnel. Il est capable de préparer des modifications sur les données d''une base et de les valider ou de les annuler d''un bloc. Cela garantit l''intégrité des informations stockées dans la base.</p>
    <p>Lors d''une transaction, les blocs de données contenant les lignes de données modifiées par cette transaction sont verrouillés. Les autres utilisateurs, en fonction du niveau d''isolation choisi, doivent attendre ou non la fin de la transaction pour pouvoir les modifier à nouveau.</p>
    <p>Les verrouillages s''effectuent au niveau des lignes, pages, extensions, tables ou base de données. SQL Server ne verrouille que les ressources dont il a besoin (par défaut les enregistrements) et en fonction des besoins peut verrouiller à un niveau plus élevé (pages ou objet). Cela évite aux utilisateurs d''attendre la fin d''une transaction pour mettre à jour des lignes de données qui n''ont pas été touchées par une modification et permet de diminuer la quantité de ressources consommées</p>
    <p>Les transactions sont enregistrées dans le journal de transaction et les modifications des données sont intégrées à la base de données lors de points de contrôle (check point). Il est possible de forcer un point de contrôle grâce à l''instruction <b>CHECKPOINT</b></p>
    <p>Le journal des transactions peut être conservé de trois manières différentes&nbsp;:</p>' AS Texte INTO #TexteATraiter
     
    DECLARE @Paragraphes TABLE (Paragraphe VARCHAR(MAX))
     
    DECLARE @Paragraphe VARCHAR(8000)
     
    DECLARE @getParagraphe CURSOR
     
    SET @getParagraphe = CURSOR FOR SELECT
    	SUBSTRING(Texte, 1, (CHARINDEX('</p>', Texte) + 3)) AS Paragraphe
    FROM #TexteATraiter
     
    OPEN @getParagraphe
    	FETCH NEXT
    	FROM @getParagraphe INTO @Paragraphe
    		WHILE ( SELECT
    			LEN(Texte)
    			FROM #TexteATraiter) >0
    				BEGIN
    					INSERT INTO @Paragraphes
    							SELECT
    									SUBSTRING(Texte, 1, (CHARINDEX('</p>', Texte) + 3)) AS Paragraphe
    							FROM #TexteATraiter
     
    					UPDATE #TexteATraiter
    							SET Texte = SUBSTRING(Texte, (CHARINDEX('</p>', Texte) + 4), 2147483647)
     
    	FETCH NEXT
    	FROM @getParagraphe INTO @Paragraphe
    END
    	CLOSE @getParagraphe
    	DEALLOCATE @getParagraphe
     
    SELECT
    	*
    FROM @Paragraphes
    En gros ça fait le suivant :
    1 Insertion du texte dans une table temporaire
    2 Création d'un curseur qui sélectionne la première paragraphe en se basent sur la fermeture de balise </p> (paragraphe en html)
    3 Mise à jour du texte dans la table temporaire pour effacer la ligne traiter
    4 Boucler jusqu'à la table temporaire est vide
    5 SELECT des paragraphes coupées.

    Pour faire cela j'ai utilisé du HTML mais tu peux envisage de couper le texte sur un autre type de séparateur de ligne. Est-ce plus claire maintenant?
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    donc si j'ai très bien compris je dois au début copier ce texte qui est un exemple dans un champs dans ma table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    '<p>Microsoft SQL Server propose plusieurs fonctionnements&nbsp;:</p>
    <h3><span id="Langages" class="mw-headline">Langages</span><span class="mw-editsection">[<a title="Modifier la section : Langages" href="/w/index.php?title=Microsoft_SQL_Server&amp;action=edit&amp;section=2">modifier</a>]</span></h3>
    <p>Pour les requêtes, SQL Server utilise <a title="Transact-SQL" href="/wiki/Transact-SQL">T-SQL</a> (Transact-SQL), il s''agit d''une implémentation de <a title="Structured Query Language" href="/wiki/Structured_Query_Language">SQL</a> qui prend en charge les procédures stockées et les déclencheurs (<i>trigger</i>). Le <a title="Transact-SQL" href="/wiki/Transact-SQL">T-SQL</a> est incompatible avec le <a title="PL/SQL" href="/wiki/PL/SQL">PL/SQL</a> d''<a title="Oracle Database" href="/wiki/Oracle_Database">Oracle</a>.</p>
    <p>Pour les transferts de données, SQL Server utilise le format TDS (Tabular Data Stream) qui a été implémenté dans d''autres bases de données (en particulier dans son homologue <a title="Sybase" href="/wiki/Sybase">Sybase</a>) et dont les spécifications sont publiques. Une implémentation <a class="mw-redirect" title="Open Source" href="/wiki/Open_Source">Open Source</a> d''un client TDS est disponible et constitue la base du client SQL Server du projet <a title="Mono (logiciel)" href="/wiki/Mono_(logiciel)">Mono</a>&nbsp;: <i>FreeTDS</i>.</p>
    <h3><span id="Relations" class="mw-headline">Relations</span><span class="mw-editsection">[<a title="Modifier la section : Relations" href="/w/index.php?title=Microsoft_SQL_Server&amp;action=edit&amp;section=3">modifier</a>]</span></h3>
    <p>SQL Server est un <a title="Système de gestion de base de données" href="/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">SGBD</a> relationnel. Il est possible de définir des relations entre les tables de façon à garantir fortement l''intégrité des données qui y sont stockées. Ces relations peuvent être utilisées pour modifier ou supprimer en chaîne des <a title="Enregistrement (informatique)" href="/wiki/Enregistrement_(informatique)">enregistrements</a> liés.</p>
    <h3><span id="Transactions" class="mw-headline">Transactions</span><span class="mw-editsection">[<a title="Modifier la section : Transactions" href="/w/index.php?title=Microsoft_SQL_Server&amp;action=edit&amp;section=4">modifier</a>]</span></h3>
    <p>SQL Server est un <a title="Système de gestion de base de données" href="/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">SGBD</a> transactionnel. Il est capable de préparer des modifications sur les données d''une base et de les valider ou de les annuler d''un bloc. Cela garantit l''intégrité des informations stockées dans la base.</p>
    <p>Lors d''une transaction, les blocs de données contenant les lignes de données modifiées par cette transaction sont verrouillés. Les autres utilisateurs, en fonction du niveau d''isolation choisi, doivent attendre ou non la fin de la transaction pour pouvoir les modifier à nouveau.</p>
    <p>Les verrouillages s''effectuent au niveau des lignes, pages, extensions, tables ou base de données. SQL Server ne verrouille que les ressources dont il a besoin (par défaut les enregistrements) et en fonction des besoins peut verrouiller à un niveau plus élevé (pages ou objet). Cela évite aux utilisateurs d''attendre la fin d''une transaction pour mettre à jour des lignes de données qui n''ont pas été touchées par une modification et permet de diminuer la quantité de ressources consommées</p>
    <p>Les transactions sont enregistrées dans le journal de transaction et les modifications des données sont intégrées à la base de données lors de points de contrôle (check point). Il est possible de forcer un point de contrôle grâce à l''instruction <b>CHECKPOINT</b></p>
    <p>Le journal des transactions peut être conservé de trois manières différentes&nbsp;:</p>'
    ensuite faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    DECLARE @Paragraphes TABLE (Paragraphe VARCHAR(MAX))
     
    DECLARE @Paragraphe VARCHAR(8000)
     
    DECLARE @getParagraphe CURSOR
     
    SET @getParagraphe = CURSOR FOR SELECT
    	SUBSTRING(Texte, 1, (CHARINDEX('</p>', Texte) + 3)) AS Paragraphe
    FROM #TexteATraiter
     
    OPEN @getParagraphe
    	FETCH NEXT
    	FROM @getParagraphe INTO @Paragraphe
    		WHILE ( SELECT
    			LEN(Texte)
    			FROM #TexteATraiter) >0
    				BEGIN
    					INSERT INTO @Paragraphes
    							SELECT
    									SUBSTRING(Texte, 1, (CHARINDEX('</p>', Texte) + 3)) AS Paragraphe
    							FROM #TexteATraiter
     
    					UPDATE #TexteATraiter
    							SET Texte = SUBSTRING(Texte, (CHARINDEX('</p>', Texte) + 4), 2147483647)
     
    	FETCH NEXT
    	FROM @getParagraphe INTO @Paragraphe
    END
    	CLOSE @getParagraphe
    	DEALLOCATE @getParagraphe
     
    SELECT
    	*
    FROM @Paragraphes

    et à l'interrogation de ma base depuis mon application je met SELECT paragraphe FROM MA TABLE; ?

  8. #8
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Alors, je connais pas ton schéma de données mais pour avoie la résultat que tu veux tu peux remplacer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT
    	*
    FROM @Paragraphes
    Avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TA_TABLE (TEXTE_COLONNE)
     
    SELECT Paragraphe
    FROM @Paragraphes
    A partir de là tu vas pouvoir chercher les paragraphes avec ton appli.
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  9. #9
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Mais attention, il faut garder le INTO dans le premier SELECT. C'est une table temporaire et non ta table de paragraphes.
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    Je préfère la deuxième c'est beaucoup plus significatif.
    Euh .. mon schéma il contient qu'une seule table pour le moment c'est la table Document qui possède un des champs paragraphes ou je vais essayer de stocker l'exemple du texte que tu m'avais donnée ensuite je déclare le curseur et tout et ensuite lors de l’interrogation de la base j'utiliserai la requête de votre dernière réponse et je vais voir ce que ça donne.si il y a un je le postulerai ultérieurement.
    Sinon Merci pour votre vous m'avez beaucoup aidé franchement et dans l'espérance que ça marche j’espère
    Merci !

  11. #11
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    Alors, comment ça s'est passé l'intégration de ce script? Ca a marché pour toi?
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 848
    Points : 52 964
    Points
    52 964
    Billets dans le blog
    6
    Par défaut
    Il serait beaucoup plus simple et mille fois plus performant de structurer votre texte sous forme XML avec des balises chapitre, paragraphe, phrase... de votre cru, le stocker dans une colonne de type XLM (si possible typée par un XML schema) et d'effectuer des requête de mise à jour XML de type modify.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Matable
    SET MaColonneXML..modify('replace value of (/Doc/chapitre[5]/Paragraphe[2]/ligne)[1]/text()[1] with  "Le petit chat est mort" ')
    Exemple détaillé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -- table des documents
    CREATE TABLE T_DOC
    (DOC_ID     INT,
     DOC_XML    XML)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    -- insertion de "du côté de chez Swan"
    INSERT INTO T_DOC VALUES 
    (1, 
    '<doc>
       <chapitre>
          <paragraphe>
             <ligne>Longtemps, je me suis couché de bonne heure.</ligne>
             <ligne>Parfois, à peine ma bougie éteinte, mes yeux se fermaient si vite que je n’avais pas le temps de me dire : « Je m’endors. »</ligne>
             <ligne>Et, une demi-heure après, la pensée qu’il était temps de chercher le sommeil m’éveillait;</ligne>
             <ligne>je voulais poser le volume que je croyais avoir dans les mains et souffler ma lumière;</ligne>
             <ligne>je n’avais pas cessé en dormant de faire des réflexions sur ce que je venais de lire, mais ces réflexions avaient pris un tour un peu particulier;</ligne>
             <ligne>il me semblait que j’étais moi-même ce dont parlait l’ouvrage : une église, un quatuor, la rivalité de François Ier et de Charles-Quint.</ligne>
             <ligne>Cette croyance survivait pendant quelques secondes à mon réveil;</ligne>
             <ligne> elle ne choquait pas ma raison, mais pesait comme des écailles sur mes yeux et les empêchait de se rendre compte que le bougeoir n’était plus allumé.</ligne>
             <ligne> Puis elle commençait à me devenir inintelligible, comme après la métempsycose les pensées d’une existence antérieure;</ligne>
             <ligne> le sujet du livre se détachait de moi, j’étais libre de m’y appliquer ou non;</ligne>
             <ligne>aussitôt je recouvrais la vue et j’étais bien étonné de trouver autour de moi une obscurité, douce et reposante pour mes yeux, mais peut-être plus encore pour mon esprit, à qui elle apparaissait comme une chose sans cause, incompréhensible, comme une chose vraiment obscure.</ligne>
             <ligne>Je me demandais quelle heure il pouvait être;</ligne>
             <ligne>j’entendais le sifflement des trains qui, plus ou moins éloigné, comme le chant d’un oiseau dans une forêt, relevant les distances, me décrivait l’étendue de la campagne déserte où le voyageur se hâte vers la station prochaine ;</ligne>
             <ligne>et le petit chemin qu’il suit va être gravé dans son souvenir par l’excitation qu’il doit à des lieux nouveaux, à des actes inaccoutumés, à la causerie récente et aux adieux sous la lampe étrangère qui le suivent encore dans le silence de la nuit, à la douceur prochaine du retour.</ligne>
             <ligne>J’appuyais tendrement mes joues contre les belles joues de l’oreiller qui, pleines et fraîches, sont comme les joues de notre enfance.</ligne> 
             <ligne>Je frottais une allumette pour regarder ma montre. Bientôt minuit.</ligne> 
             <ligne>C’est l’instant où le malade, qui a été obligé de partir en voyage et a dû coucher dans un hôtel inconnu, réveillé par une crise, se réjouit en apercevant sous la porte une raie de jour. </ligne>
             <ligne>Quel bonheur !</ligne>
             <ligne>c’est déjà le matin !</ligne>
             <ligne>Dans un moment les domestiques seront levés, il pourra sonner, on viendra lui porter secours. </ligne>
             <ligne>L’espérance d’être soulagé lui donne du courage pour souffrir.</ligne>
             <ligne>Justement il a cru entendre des pas;</ligne>
             <ligne>les pas se rapprochent, puis s’éloignent. Et la raie de jour qui était sous sa porte a disparu. </ligne>
             <ligne>C’est minuit; </ligne>
             <ligne>on vient d’éteindre le gaz;</ligne>
             <ligne>le dernier domestique est parti et il faudra rester toute la nuit à souffrir sans remède.</ligne>
          </paragraphe>
          <paragraphe>
             <ligne>Je me rendormais, et parfois je n’avais plus que de courts réveils d’un instant, le temps d’entendre les craquements organiques des boiseries, d’ouvrir les yeux pour fixer le kaléidoscope de l’obscurité, de goûter grâce à une lueur momentanée de conscience le sommeil où étaient plongés les meubles, la chambre, le tout dont je n’étais qu’une petite partie et à l’insensibilité duquel je retournais vite m''unir.</ligne>
             <ligne>Ou bien en dormant j’avais rejoint sans effort un âge à jamais révolu de ma vie primitive, retrouvé telle de mes terreurs enfantines comme celle que mon grand-oncle me tirât par mes boucles et qu’avait dissipée le jour – date pour moi d’une ère nouvelle – où on les avait coupées. </ligne>
             <ligne>J’avais oublié cet événement pendant mon sommeil, j’en retrouvais le souvenir aussitôt que j’avais réussi à m’éveiller pour échapper aux mains de mon grand-oncle, mais par mesure de précaution j’entourais complètement ma tête de mon oreiller avant de retourner dans le monde des rêves.</ligne>
          </paragraphe>         
       </chapitre>
    </doc>')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -- voici une requête qui extrait la 2e ligne du 2e paragraphe :
    SELECT *, DOC_XML.value('(/doc/chapitre[1]/paragraphe[2]/ligne)[2]', 'NVARCHAR(1000)')
    FROM   T_DOC
    WHERE  DOC_ID = 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    -- et une requête qui remplace cette même ligne par une autre :
    UPDATE T_DOC
    SET DOC_XML.modify(' replace value of (/doc/chapitre[1]/paragraphe[2]/ligne)[2]/text()[1] with "Le petit chat est mort" ')
    En sus en combinant le XML avec une feuille de style, vous obtiendrez du HTML ! http://librairie.immateriel.fr/fr/re...2815001618_c04

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  13. #13
    Membre actif
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Points : 245
    Points
    245
    Par défaut
    C'est plutôt sympa comme fonctionnalité ça. Je vais le tenter quand j'ai l'occasion. Merci
    "Toute technologie suffisamment avancée est indiscernable de la magie." - Arthur C. Clarke

    Evan Barke - Ingénieur d'Etudes et Développement SQL Server
    Blog SQL Server, T-SQL, SSIS, Administration www.transactivesql.com
    Twitter - TransactiveSQL
    N'oubliez pas les boutons et

  14. #14
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    merci pour vos réponses au fait seulement pour l'interrogation je dois mettre

    select * from Ma table ; ?au niveau application bien sur merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ODBC, récupération des données depuis la base de données "unify"
    Par slimlus dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 05/04/2011, 11h00
  2. Afficher image depuis texte dans la base de donnée
    Par bruce207 dans le forum Langage
    Réponses: 12
    Dernier message: 01/04/2010, 10h42
  3. JTextField, envoie du text a une base de données.
    Par niklette dans le forum Composants
    Réponses: 2
    Dernier message: 05/06/2006, 20h23
  4. Réponses: 2
    Dernier message: 14/03/2006, 14h49
  5. Liens depuis une base de donnée statique
    Par LucG dans le forum Access
    Réponses: 4
    Dernier message: 26/10/2005, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo