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 : 164
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é?