Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Sql*Plus
Sql*Plus Forum d'entraide sur Oracle Sql*Plus
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2007, 17h59   #1
Membre régulier
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Suisse

Informations forums :
Inscription : mars 2007
Messages : 78
Points : 75
Points : 75
Par défaut Shell unix + Sqlplus

Bonjour,

je viens de faire un script unix (AIX5) en shell (pourquoi pas )

ce script fait différent contrôle, qui se passe bien, puis appel un sqlplus comme ceci
Code :
1
2
3
4
5
6
7
 
	sqlplus /nolog <<eof
		-- mon code ....
 
		SHOW errors
		exit
eof
ce qui fonctionne bien

par contre si j'indente le "eof" de fin, histoire de voir plus clair dans mon script, j'ai l'erreur suivante
"inst_imp_releve.sh[57]: 0403-057 Erreur de syntaxe à la ligne 60 : `<' sans correspondance."


j'ai beau chercher, là je ne comprends pas

évidement ce n'est pas bloquant puisque sans l'indentation ça marche, mais j'aurai bien aimé comprendre.

Merci
alx13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 10h24   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
l'explication c'est que sans l'indentation ça ne marche pas

bon, si tu tiens absolument à ton indentation et que tu es prêt à rendre ton code ingérable, tu peux tenter :

Code :
1
2
3
4
5
6
IF [ 1 = 1 ]
then
    cat <<'    EOF'
        Hello World
    EOF
fi
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 10h41   #3
Membre régulier
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Suisse

Informations forums :
Inscription : mars 2007
Messages : 78
Points : 75
Points : 75
a oui ça marche merci,

par contre il faut se connecter à l'appel

Code :
1
2
 
     sqlplus $USERAPPS/$PWDAPPS<<'       eof'
et non pas
Code :
1
2
3
 
     sqlplus <<'       eof'
           CONNECT $USERAPPS/$PWDAPPS
c'est fou encore
alx13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 10h44   #4
Membre régulier
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Suisse

Informations forums :
Inscription : mars 2007
Messages : 78
Points : 75
Points : 75
Citation:
Envoyé par laurentschneider Voir le message
l'explication c'est que sans l'indentation ça ne marche pas
c'est fou

Citation:
Envoyé par laurentschneider Voir le message
que tu es prêt à rendre ton code ingérable, tu peux tenter :
comment, tu insinue que je m'expose a d'autre problème arggggg



Merci en tout cas
alx13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 10h52   #5
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
plus élégant

Code :
1
2
3
4
5
6
7
8
9
10
 
 
# ...
 
    echo "
		-- mon code ....
 
		show errors
		exit
    " | sqlplus /nolog
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 11h12   #6
Membre régulier
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Suisse

Informations forums :
Inscription : mars 2007
Messages : 78
Points : 75
Points : 75
tiens je vais essayer immédiatement
alx13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 11h25   #7
Membre régulier
 
Inscription : mars 2007
Messages : 78
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Suisse

Informations forums :
Inscription : mars 2007
Messages : 78
Points : 75
Points : 75
Citation:
Envoyé par laurentschneider Voir le message
plus élégant
ça marche nikel, beau et efficace
alx13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2008, 15h57   #8
the_felis_leo
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Voici la réponse :
Code :
1
2
3
4
5
6
7
 
	sqlplus /nolog <<- eof
		-- mon code ....
 
		SHOW errors
		exit
	eof
A noter la fine subtilité : <<- (avec le tiret)
au lieu de : << (sans le tiret)

Avec le tiret (collé, c'est important), toutes les tabulations initiales seront supprimées.

Tips: pour garder des tabulations, ajouter un caractère du genre " " ou encore mieux utiliser "${VIDE}" :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
	X='' ;
	sqlplus /nolog <<- eof
	$X	-- mon code ....
	$X	SELECT
	$X		1+1 AS "sum"
	$X	FROM
	$X		DUAL
	$X	;
		SHOW errors
		exit
	eof
  Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2008, 04h04   #9
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Citation:
Envoyé par the_felis_leo Voir le message
Voici la réponse :
c'est beau !
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2008, 15h04   #10
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
mais hélas <<-EOF ne marche que pour les tabulations et pas pour les espaces
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h09.


 
 
 
 
Partenaires

Hébergement Web