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

Langage SQL Discussion :

SQL : Extraction données limitée à 65535 caractètes


Sujet :

Langage SQL

  1. #1
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut SQL : Extraction données limitée à 65535 caractètes
    Bonjour,

    J'ai réalisée une requête qui permet de générer automatiquement un fichier xml d'utilisateurs.

    Le hic c'est que la requête me retourne seulement les 65535 premiers caractères et crée donc un fichier xml invalide.

    Comment faire pour récupérer tous les résultats ?

    Ma fonction :
    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
    CREATE FUNCTION [dbo].[xml_genTableSteSt2]
    (
    )
    RETURNS TABLE 
    AS
    RETURN 
    (
    	SELECT '<?xml version="1.0" encoding="ISO-8859-15" ?> <Societes>
    				<Societe Num="0" Nom="Entreprise">'
    				as 'Noeud'
    				UNION ALL SELECT(
    						select	Technicien.[Num] as Num
    								,Technicien.[Noml] as Nom
    						from dbo.Tech Technicien
    						for xml auto
    					)
    	UNION ALL SELECT('</Societe><Societe Num="1" Nom="Entreprise2">')
    	UNION ALL SELECT(
    						select	Technicien.[Num]
    								,Technicien.[Nom]
    						from dbo.ST Technicien
    						for xml auto
    					)
    		UNION ALL SELECT('</Societes></Societe>')
    )
    Une idée ?

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    Quel est le SGBD?

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Comment appelles-tu ta fonction? A l'aide de quelle instruction? dans quel outil?
    As-tu essaye de l'appeler d'une autre façon dans un outil différent?
    J'ai eu un cas de limitation similaire et en fait l'outil était paramétrable pour passer outre la limitation
    Cordialement
    Soazig

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Vu le code utilisé je suppose que vous utilisez SQL Server avec SSMS. C'est donc une limitation de l'interface graphique ... Celle-ci est limité à 65K caractères en mode grille et un peu moins en mode caractère il me semble.

    EDIT :Je viens de voir que SQL Pro vous avait répondu la même chose sur le forum SQL Server.

    ++

  5. #5
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut Problème résolu
    Merci de vos tuyaux, problème résolu.

    En fait mes fonctions fonctionnait très bien, c'était juste l'affichage dans SSME qui était limitée.

    Database : SQL Server 2005 via SSME 2005

    Appellant : (pour info)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE PROCEDURE [dbo].[xml_genFileSteSt2]
    AS
    BEGIN
    	DECLARE @sql varchar(1000)
    	DECLARE @chemSaveXml varchar(200)
    	DECLARE @cmd varchar(200)
     
    	select @chemSaveXml='\\myPath\File.xml'
    	select @sql = 'bcp "select * from dbo.xml_genTableSteSt2()" queryout "'+cast(@chemSaveXml as varchar(200))+'" -c -U"myUser" -P"myPwd" -S "myIp"'
    	exec master..xp_cmdshell @sql
    END
    Merci à tous.

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

Discussions similaires

  1. [11gR2] [JSON/SQL] Extraction de données dans un champ au format JSON
    Par Filippo dans le forum PL/SQL
    Réponses: 3
    Dernier message: 12/03/2015, 11h27
  2. SQL : Extraction données limitée à 65535 caractètes
    Par alex_vino dans le forum Développement
    Réponses: 2
    Dernier message: 24/03/2010, 10h23
  3. [SQL] extraction des différences de 2 select
    Par toxine dans le forum Langage SQL
    Réponses: 8
    Dernier message: 12/08/2005, 13h27
  4. [SQL Server 2000] Générer le script SQL des données
    Par Giovanny Temgoua dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 31/03/2005, 18h35

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