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

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut Script create drop table postgres et alimentation - externalisation des fichiers ordre sql
    Bonjour a Tous,

    Je pense que ce que je demande est assez basique mais comme je débute en Perl .

    J'ai fait un script qui permet de faire l'alimentation d'une table après la création d'un drop/create.

    Seulement, les ordres sql sont dans le script alors que j'aimerais qu'un fichier soit lu avec ces ordres.

    Exemple avec les ordres sql dans le script:

    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
     
    # Alimentation de la $table
    # Ordres SQL d'alimentation
    	my $sql = "COPY $table (contexte,
    							client,
    							typologie,
    							code_type_contexte,
    							systeme,perimetre_urba,
    							domaine_urba,
    							zone_urba,origine,
    							serveur,
    							nom_ressource)
    				FROM STDIN WITH DELIMITER ';' CSV HEADER";
    	$dbh->do($sql) or die "Anomalie pour l'ordre SQL de copy\n";
        print "Ordre d'alimentation de la base : Ok\n";
    avec la lecture du fichier en externe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # Alimentation de la $table
    # Ouverture du fichier contenant  les ordres SQL d'alimentation
    	open (SQL,$FilepathOrderSqlAlim) or die "Ouverture du fichier des ordres sql $FileOrderSqlAlim pour la création de la base impossible\n";
    	print "Ouverture du fichier ordre SQL $FileOrderSqlAlim : Ok\n";
    # Lecture et execution des ordres SQL séquentiellement
    	@Sqls = split(/;/,join('',<SQL>));
    	for $sql (@Sqls)
    	{
    		$dbh->do($sql) or die "Anomalie pour l'ordre SQL $sql \n";
    		print "Ordre SQL: ", $sql ,"\n";
    	}
        print "Ordre d'alimentation de la $table : Ok\n";
    J'ai par contre le problème avec l'utilisation des quotes.

    Nom : erreur-ordre.png
Affichages : 48
Taille : 10,0 Ko

    Comment puis-je reproduire l'utilisation des double quote comme l'exemple premier pour pouvoir placer les quotes utilisé dans les ordres sql dans le
    fichier externalisé?

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    juillet 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2014
    Messages : 82
    Points : 194
    Points
    194
    Par défaut
    Avec des échappements supplémentaires ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # Alimentation de la $table
    # Ordres SQL d'alimentation
    	my $sql = "COPY $table (contexte,
    							client,
    							typologie,
    							code_type_contexte,
    							systeme,perimetre_urba,
    							domaine_urba,
    							zone_urba,origine,
    							serveur,
    							nom_ressource)
    				FROM STDIN WITH DELIMITER \';\' CSV HEADER";
    	$dbh->do($sql) or die "Anomalie pour l'ordre SQL de copy\n";
        print "Ordre d'alimentation de la base : Ok\n";

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/10/2014, 14h11
  2. [Batch] Script ou commande dos pour changer le nom des fichiers
    Par MR-SMOOT dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 03/09/2014, 11h11
  3. Drop Down Menu : Récuperer le nombre des fichiers dans une répertoire
    Par slim.bouzrati dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 08/05/2012, 00h16
  4. Réponses: 5
    Dernier message: 30/01/2012, 18h38
  5. Externaliser des fichiers de configuration
    Par rozwel dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 30/06/2008, 13h11

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