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 :

Package SQL pour executer BCP


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 352
    Points : 136
    Points
    136
    Par défaut Package SQL pour executer BCP
    Bonjour,

    J'ai des requêtes en SQL. J'ai des lignes de commande BCP que j'execute via la console.

    J'aimerai automatisé ces 2 tâches dans un Job SQL, mais je ne sais pas comment intégrer la ligne de commande BCP ?

    Par exemple :
    SQL :
    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
     
    USE [MaBase]
    GO
    IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[t_pack]') AND type in (N'U'))
    DROP TABLE [dbo].[t_pack]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[t_pack](
    	[Id] [char](2) NULL,
    	[Nom] [char](5) NULL
    ) ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO
    BCP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bcp MaBase..t_pack in "Q:\monPath\FileInput.txt" -SmonServeur -f "Q:\monPath\Format.bcp" -T
    avec dans le fichier FileInput.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    02azert
    03hgjfr
    08hsncf
    Et dans le fichier Format.bcp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    9.0
    2
    1	SQLCHAR	0	2	""	1	ID	French_CI_AS
    2	SQLCHAR	0	10	"\r\n"	2	NOM	French_CI_AS
    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous avez deux solutions :

    - Réaliser un package DTS si vous êtes sous SQL Server 2000, ou un package SSIS si vous êtes sous SQL Server 2005

    - stocker la commande BCP dans une variable chaîne, et l'exécuter à l'aide de la procédure stockée master.dbo.xp_cmdshell.
    Sachez dans ce cas que cette procédure stockée nécessite son activation dans les options de configuration :

    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
    IF NOT EXISTS
    (
    	SELECT *
    	FROM sys.configurations
    	WHERE name = 'xp_cmdshell'
    	AND value_in_use = 1
    )
    BEGIN
    	EXEC sp_configure 'show advanced options', '1'
    	RECONFIGURE
    	EXEC sp_configure 'xp_cmdshell', '1'
    	RECONFIGURE
    	EXEC sp_configure 'show advanced options', '0'
    	RECONFIGURE
    END
     
    DECLARE @BCP = 'bcp MaBase.monSchema.t_pack IN "Q:\monPath\FileInput.txt" -SmonServeur -f "Q:\monPath\Format.bcp" -T'
    EXEC master.dbo.xp_cmdshell @BCP --, NO_OUTPUT
    @++

Discussions similaires

  1. commande PL/sql pour executer un report
    Par hope_high dans le forum PL/SQL
    Réponses: 1
    Dernier message: 22/01/2010, 11h31
  2. Réponses: 26
    Dernier message: 23/06/2006, 15h45
  3. [VB]executer un script sql pour oracle
    Par akbayli01 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/02/2006, 15h10
  4. Pb pour executer une procédure sous SQL PLUS
    Par rabddoul dans le forum Oracle
    Réponses: 4
    Dernier message: 21/10/2005, 15h40
  5. [MySQL] Afficher le temps mis pour executer une requête SQL
    Par micatmidog dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/09/2005, 11h23

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