Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1567 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  KSH - SQL plus : : Not Found

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

KSH - SQL plus : : Not Found

n°1274340
glwad
Posté le 29-12-2005 à 11:03:48  profilanswer
 

Bonjour à tous
 
Je suis nouvelle en programmation shell et j'ai un problème incompréhensible pour moi.
Voilà, je programme sous ksh et j'aimerai exécuter un script SQL sur une bas ORACLE 8.1.7 (je ne peux pas utiliser du PL/SQL).
Mon scipt ressemble à ceci:
`sqlplus -s /nolog << EOF  
 connect ${SC_ALIAS_LOGIN}/${SC_ALIAS_PWD}@${DB_BASE}    
 SET ECHO OFF  
 SET FEEDBACK OFF  
 SET HEADING OFF  
 SET COLSEP ';'  
 ${cmd}
 exit
EOF` | tr -d " " > ${REP}/${DB_USER}.${table}${Ver_Chg}.lst
 
lorsque je l'exécute, j'ai l'erreur SQL*Plus::  not found
 
Et pourtant, si je modifie le script ainsi
`sqlplus -s /nolog << EOF  > ${REP}/${DB_USER}.${table}${Ver_Chg}.lst
 connect ${SC_ALIAS_LOGIN}/${SC_ALIAS_PWD}@${DB_BASE}    
 SET ECHO OFF  
 SET FEEDBACK OFF  
 SET HEADING OFF  
 SET COLSEP ';'  
 ${cmd}
 exit
EOF`  
 
Là il s'exécute et j'ai des résultats. :pfff:  
 
Je ne peux utiliser cette deuxième solution car j'ai beaucoup d'espace dans certaine tables et elle dépasse 2Go, ce qui fait planter mon script. :cry:  
 
J'ai vérifié le PATH et le ORACLE_HOME et j'ai testé le chargement de l'environnement ORACLE dans mon script avec les instructions
export PATH=$PATH:/usr/bin/X11:/usr/local/bin
umask=022
export ORACLE_SID=${1}
export ORAENV_ASK=NO
. oraenv
 
mais le comportement est toujours aussi bizarre  :pt1cable:  :pt1cable:  :pt1cable:  
Je suis preneuse pour toute piste qui m'aiderai à avancer.
 
Merci

mood
Publicité
Posté le 29-12-2005 à 11:03:48  profilanswer
 

n°1274520
glwad
Posté le 29-12-2005 à 16:30:46  profilanswer
 

Salut
 
J'ai trouvé la solution. En fait, le shell essayait d'interpreter le resultat de mon sql comme une commande. J'ai donc viré les "`" et rediriger le tout dans un fichier (en début de script.
Mon code ressemble à present à ceci:

Code :
  1. if [ ! -f ${REP}/${DB_USER}.${table}${Ver_Chg}.lst ]; then
  2.   (sqlplus -s /nolog | tr -d ' \t'  > ${REP}/${DB_USER}.${table}${Ver_Chg}.lst) <<EOF
  3.   whenever sqlerror exit 2
  4.          whenever oserror exit 1
  5.   connect ${SC_ALIAS_LOGIN}/${SC_ALIAS_PWD}@${DB_BASE}
  6.   SET TERMOUT OFF 
  7.   SET TRIMSPOOL ON
  8.   SET RECSEP OFF 
  9.   SET NEWPAGE 0   
  10.   SET SPACE 0     
  11.   SET LINESIZE 4000
  12.   SET PAGESIZE 0 
  13.   SET ECHO OFF
  14.   SET FEEDBACK OFF
  15.   SET HEADING OFF
  16.   SET COLSEP ';'
  17.   ${cmd}
  18.   exit
  19. EOF


 
 
 

n°1274529
Elmoricq
Modérateur
Posté le 29-12-2005 à 16:52:07  profilanswer
 

En fait, les backquotes ( car. ` ) retournent au shell le texte imprimé sur le flux de sortie standard à l'exécution. Ce qui signifie qu'il essaie d'exécuter ce texte.
 
Exemple :  

`echo find`


t'imprimera l'aide de la commande "find" qui s'est exécutée.
 
D'où ton erreur :)


Message édité par Elmoricq le 29-12-2005 à 16:52:32

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  KSH - SQL plus : : Not Found

 

Sujets relatifs
[SQL / ACCESS] question un peu tordu sur une requete.[PL/SQL] Récupérer l'erreur
[SQL] Question sur foreign key[SQL] (noob) difference entre char et varchar
[SQL/PHP] Selectionner toute les tables d'une base[SQL SERVER 2000] Definir un ordre de priorité pour les bases??
[PL/SQL][SQL] un coup de main pour rouler mon join?
export de phpmyadmin vers SQL Serverordonner les resultats d'une requete SQL !
Plus de sujets relatifs à : KSH - SQL plus : : Not Found


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR