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

Administration Oracle Discussion :

[Oracle 10g] Connect / as sysdba depuis script shell


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Par défaut [Oracle 10g] Connect / as sysdba depuis script shell
    Bonjour tout le monde,

    Actuellement j'essaie de piloter une base oracle depuis des scripts shells. Pour toutes les actions "usuelles" (commes creation/update/drop/delete/etc) je n'ai aucun soucis, je m'y prend de la facon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    export ORACLE_HOME=/exec/products/oracle/v9.2.0
    export LANG=fr_FR@euro
    export NLS_LANG=FRENCH_FRANCE.WE8ISO8859P15
     
    SQLPLUS=${ORACLE_HOME}/bin/sqlplus
    SQLLDR=${ORACLE_HOME}/bin/sqlldr
     
    MYSETENV=/exec/applis/13ubdv/current/
    . ${MYSETENV}/setenv
    base=${DATA_BASE}
    user=${NOM_USER}
    passwd=${PASS_USER}
     
    ${SQLPLUS} ${user}/${passwd}@${base} @install_ExportContratValseDiffView.sql
    Seulement voila, maintenant je dois passer des commandes qui necessite le role SYSDBA et je n'y arrive plus du tout.
    Voila comment je m'y prend :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ${SQLPLUS} /nolog
    CONNECT / AS SYSDBA
    select table_name FROM dba_lobs; >> ficLog.log
    exit
    Bien evidement ceci ne fonctionne pas (entre autre parce que je ne specifie pas de base sur laquelle me connecter), j'ai aussi essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ${SQLPLUS} ${user}/${passwd}@${base} CONNECT / AS SYSDBA
    SELECT segment_name FROM dba_lobs; >> ficLog.log
    exit;
    Ca ne marche toujours pas, le script s'arrete et j'ai un long message qui ressemble presque à un man de sqlplus, et qui termine par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      <start> is: @<URL>|<filename>[.<ext>] [<parameter> ...]
    
        Runs the specified SQL*Plus script from a web server (URL) or the
        local file system (filename.ext) with specified parameters that
        will be assigned to substitution variables in the script.
    
    When SQL*Plus starts, and after CONNECT commands, the site profile
    (e.g. $ORACLE_HOME/sqlplus/admin/glogin.sql) and the user profile
    (e.g. login.sql in the working directory) are run.  The files may
    contain SQL*Plus commands.
    
    Refer to the SQL*Plus User's Guide and Reference for more information.
    ./TEST_SYSDBAKSH.ksh: line 35: SELECT: command not found
    Des idées les gens ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus "sys@BASE as SYSDBA" @script.sq

  3. #3
    Membre confirmé Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Par défaut
    Tout d'abord merci pour ton aide.

    Alors j'ai essayé ceci dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sqlplus "sys/change_on_install@${base} as SYSDBA" 'select * from dba_lobs;'
    exit;
    no comment pour le mot de passe sys de base

    Et malheureusement j'ai toujours cette fameuse page du man de sqlplus qui apparait :/

  4. #4
    Membre confirmé Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Par défaut
    J'ai procédé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $base=VTRG5I24
    echo "EXPORT ORACLE SID"
    ORACLE_SID=$base; export ORACLE_SID
    echo $ORACLE_SID
    echo "SQLPLUS DEBUT"
     
    ${sqlplus} sys/change_on_install as sysdba @req_sysdba.sql
    exit;
     
    #${sqlplus} sys/change_on_install${base} as sysdba @req_sysdba.sql
    #exit;
    Mais j'ai ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DEBUT TEST -SYSDBA-
    EXPORT ORACLE SID
    VTRG5I24
    SQLPLUS DEBUT
    ./TEST_SYSDBAKSH.ksh: line 69: sys/change_on_install: Aucun fichier ou répertoire de ce type
    Des idées ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Par défaut
    oui : ne pas mélanger script à exécuter depuis l'appel de sqlplus, et requetes à exécuter depuis sqlplus alors qu'il n'est pas capable de le faire
    la solution que je t'avais donné fonctionne

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    Je pense que couak a raison, tu sembles mélanger les requetes SQL et les commande shell...

    Tu devrais essayer cette synthaxe avant de redéfinir tes variables etc..
    Sachant que ta base doit etre démarrée....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sqlplus "sys/password@${base} as SYSDBA" 
    
    SQL>'select * from dba_lobs;'
    --------------------------------
    résultat de la requete select
    --------------------------------
    
    SQL>exit;

Discussions similaires

  1. [PowerShell] Connection automatique SSH en script SHELL
    Par elgringo66 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 13/07/2012, 13h39
  2. sqlplus depuis script shell ksh
    Par toto753 dans le forum SQL
    Réponses: 5
    Dernier message: 06/01/2012, 17h34
  3. [WD16] Oracle 10g : erreur IM003 - 1114 / depuis mise à jour WD14->16
    Par chapeau_melon dans le forum WinDev
    Réponses: 6
    Dernier message: 31/01/2011, 09h02
  4. Execution script PHP depuis script shell
    Par TangoZoulou dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2010, 16h32
  5. Réponses: 16
    Dernier message: 06/06/2008, 21h25

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