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

Sql*Plus Oracle Discussion :

Quitter un script de commandes sqlplus si une erreur est retourn�e lors de l'import d'un fichier


Sujet :

Sql*Plus Oracle

  1. #1
    Futur Membre du Club
    Femme Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 4
    Par d�faut Quitter un script de commandes sqlplus si une erreur est retourn�e lors de l'import d'un fichier
    Bonjour,

    Je suis nouvellement inscrite sur le forum et esp�re que mon post ne fera pas doublon.
    J'ai parcouru en diagonale les posts � la recherche d'une solution � mon probl�me et malheureusement je n'ai trouv� aucune solution.

    C'est un peu un appel au secours que je lance

    Avant toute chose, je dois pr�ciser que je d�bute totalement en sqlplus et pl/sql.

    J'ai un script test.sql qui contient cela:

    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
    20
    21
     
    SET echo ON
     
    /* ********** 1 - ask for INPUT parameters ********** */
    /* Ask to the user if he is sure to launch this script on the selected instance */
    ACCEPT confirmLaunchLua CHAR FORMAT 'A1' DEFAULT 'N' PROMPT 'Do you really want to launch this script on &_CONNECT_IDENTIFIER instance? (answer Y for yes or N for No): ';
     
    /* Ask to the user to give the password to allowed the script to connect to the schema */
    ACCEPT password CHAR PROMPT 'Can you entered the password which allows to connect to the schema? ' HIDE;
     
    SET head off
    SET feed off
     
    /* Get all parameters from properties file */
    @properties
     
    connect &schema_name/&password@&_CONNECT_IDENTIFIER
    spool ON
    Spool spool_functions
    @functions
    spool OFF
    Dans le fichier properties se trouve la variable schema_name d�finit comme suit :
    DEFINE schema_name='mon_schema'

    Et dans le fichier functions j'effectue des tests en PL/SQL et trace dans un fichier en cas d'erreur.

    Ce script fonctionne tr�s bien sauf quand je renomme mon fichier properties afin de me g�n�rer une erreur et voir comment r�agit le script.
    Dans ce cas j'ai:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    SQL> @properties
    SP2-0310: impossible d'ouvrir le fichier "properties.sql"
    SQL> connect &schema_name/&password@&_CONNECT_IDENTIFIER
    Entrez une valeur pour schema_name :
    J'aimerai trouver une solution pour que le script test.sql s�arr�te quand il ne trouve pas le fichier et me rende la main.
    J'ai vu qu'on pouvait utiliser cette commande : WHENEVER OSERROR EXIT
    mais je ne souhaite pas quitter l'environnement SQL*Plus en cas d'erreur donc cela ne r�sout pas mon probl�me


    J'ai bien pens� � faire un test en PL/SQL en tentant d'ouvrir le fichier mais pour cela il faut passer le chemin absolue o� se trouve le fichier et cela n'est pas possible car ce script et l'ensemble des fichiers(properties et functions) vont �tre livr�s chez le client et je ne sais absolument pas o� ils seront mis. donc il faudrait que je puisse ouvrir le fichier mais avec le chemin relatif et ce n'est apparemment pas possible.

    J'esp�re avoir donn� toutes les informations possibles.

    Si un ma�tre jedi du SQLPLUS ou PL/SQL pouvait sauv� la vie du jeune padawan que je suis

  2. #2
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de donn�es
    Inscrit en
    D�cembre 2010
    Messages
    680
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Architecte de base de donn�es
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 680
    Par d�faut
    Je ne vois � priori pas de solution pour arr�ter le script sans sortir de SQL*Plus cependant, concernant la probl�matique des chemins de fichiers la directive @@ vous permet d'utiliser des chemins relatifs

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    SET head off
    SET feed off
     
    /* Get all parameters from properties file */
    @@properties

  3. #3
    Futur Membre du Club
    Femme Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 4
    Par d�faut Merci
    Merci pour ta r�ponse

  4. #4
    Futur Membre du Club
    Femme Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 4
    Par d�faut lecture de fichier spool
    J'ai oubli� de pr�ciser que je travaille avec oracle 9.
    Que je vais g�n�rer des spools depuis mon script SQLPLUS.
    Ce fichier est g�n�r� en local dans le r�pertoire o� je lance mon script.
    J'aimerai savoir si ce fichier pourrait �tre lu en PL/SQL en oracle 11 car apparemment �a n'est pas possible en oracle 9.

  5. #5
    Membre exp�riment�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    260
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 260
    Par d�faut
    Salut,

    Sous Oracle 11 comme Oracle 9 la lecture des fichiers en PlSql est possible avec utl_file.
    Ce package traite des fichiers situ�s
    - soit dans un r�pertoire du serveur de base de donn�es point� par le param�tre utl_file_dir.
    - soit dans un r�pertoire point� par un directory. Les directories supportent les lecteurs r�seau.

    Dans ton cas je resterais en sqlplus en :
    - Pla�ant un fichier de param�trage un chemin relatif au fichier de commande sql.
    @@properties me semble bien.
    - Indiquant dans ce fichier de param�trage les r�pertoires dans lesquels je veux travailler. Tu as le droit de faire un spool &v_monchemin.\&v_monfichier..txt par exemple si tu as d�finis les deux variables v_monchemin et v_monfichier dans ton fichier properties.

    Pozzo

  6. #6
    Futur Membre du Club
    Femme Profil pro
    D�veloppeur Java
    Inscrit en
    F�vrier 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Java

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 4
    Par d�faut commande SQLPLUS avec conditions
    J'ai un script qui contient des commandes SQLPLUS.

    Dans ce script :
    - je demande � l'utilisateur s'il veut toujours ex�cuter ce script.
    SI OUI
    - j'appelle un fichier de properties : @properties
    - je v�rifie que certaines conditions soient bonnes en appelant un script PL/SQL : @check
    - je me connecte � un schema : connect user/pwd@instance
    - je cr�e un spool : spool ON, spool mon_spool
    - j'ex�cute un fichier de requetes SQL : @sql_script
    - je ferme le spool : spool OFF
    SI NON
    il ne se passe rien


    Ce qui est en rouge n'existe pas. Je cherche un moyen propre de ne pas ex�cuter la suite de ce script si l'utilisateur me r�pond NON. Tout cela sans quitter Oracle SQL/PLUS.
    Est-ce possible?

Discussions similaires

  1. R�ponses: 1
    Dernier message: 17/02/2014, 16h49
  2. R�ponses: 2
    Dernier message: 04/02/2014, 13h18
  3. R�ponses: 7
    Dernier message: 04/09/2013, 12h51
  4. Une erreur est survenue lors de l'ouverture de ce document.
    Par slaima15 dans le forum Erreurs - Avertissements
    R�ponses: 2
    Dernier message: 20/06/2010, 00h54
  5. R�ponses: 1
    Dernier message: 02/06/2008, 20h40

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