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 :

[ACCEPT][PROMPT] Input non pris en compte dans le script


Sujet :

Sql*Plus Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut [ACCEPT][PROMPT] Input non pris en compte dans le script
    Bonjour,

    j'ai un script sql qui doit exécuter plusieurs autres scripts en vue de créer deux utilisateurs et insérer certaines données dans des tables.

    Pour la création du premier utilisateur pas de problème, le mot de passe demandé est bien pris en compte par le script.

    Par contre le deuxième mot de passe n'est lui pas pris en compte.

    Voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SET ECHO OFF;
    spool epss_schema.log;
    ACCEPT EPSS_PASSWD char PROMPT 'Enter EPSS Schema password: '  hide;
    ACCEPT PIC_DIRECTORY char PROMPT 'Enter The Directory where the PIC dump files will be stored:' ;
    create user epss10 identified by &EPSS_PASSWD default tablespace users temporary tablespace temp;
    grant dba to epss10;
    connect epss10/&EPSS_PASSWD;
    @EPSS_SCHEMA.sql
    @EPSS_ACTIVITY_CODES_DATA.sql
    @EPSS_BCP_TABLE_DATA.sql
    @EPSS_CALL_SETUP_TYPE.sql
    @EPSS_COUNTRY_CD_DATA.sql
    @EPSS_ERC_KEYWORDS_DATA.sql
    @EPSS_ERC_KEYWORDS_LS_DATA.sql
    @EPSS_ERC_KEYWORDS_PE_DATA.sql
    @EPSS_ERC_KEYWORDS_SH_DATA.sql
    @EPSS_GEN_ACTIVITY_CODES_DATA.sql
    @EPSS_INSTRUMENT_LIST_DATA.sql
    @EPSS_KEYWORDS_DATA.sql
    @EPSS_NACE_CD_DATA.sql
    @EPSS_REVIEW_PANELS_DATA.sql
    @EPSS_REVIEW_PANELS_GEN_DATA.sql
    @EPSS_STATE_DATA.sql
    create or replace directory PIC_IMP_DIR as '&PIC_DIRECTORY';
    ACCEPT EPSS_DUMP_PASSWD char PROMPT 'Enter EPSS_DUMP Schema password: ' hide;
    create user epss_dump10 identified by &EPSS_DUMP_PASSWD default tablespace users temporary tablespace temp;
    grant connect,resource,JAVAUSERPRIV to epss_dump10;
    grant CREATE DATABASE LINK to epss_dump10;
    grant CREATE PUBLIC SYNONYM to epss_dump10;	
    grant CREATE SYNONYM to epss_dump10;
    grant CREATE TABLE to epss_dump10;
    grant CREATE VIEW to epss_dump10;
    grant UNLIMITED TABLESPACE to epss_dump10;
    grant read,write on directory PIC_IMP_DIR to epss_dump10;
    connect epss_dump10/&EPSS_DUMP_PASSWD
    @EPSS_DUMP_SCHEMA.sql
    spool off;
    exit;
    Le problème vient de la variable EPSS_DUMP_PASSWD.

    Les deux premières variables (EPSS_PASSWD, PIC_DIRECTORY) sont bien prises en compte, mais la dernière pas du tout.

    Merci d'avance pour vos éclaircissements.

  2. #2
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Juste une remarque :
    au moment de votre premier "create user" vous etes , je suppose, connecté sur un compte "admin" (system par exemple)

    et lors de votre 2ème "create user " vous etes connecté "epss10" qui à priori n'a pas ces memes droits pour créer un nouveau "user"

  3. #3
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    Le schema epss10 a les droit dba.

    grant dba to epss10;

    J'avais pensé un moment que c'est parce que je demande le mot de passe via la session sysdba et qu'ensuite je me connecte en epss10 pour créer les tables et remplir ces même tables et seulement qu'ensuite je crée le user epss_dump10.

  4. #4
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Que ce passe t'il si vous commencez votre script comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SET ECHO OFF;
    spool epss_schema.log;
    ACCEPT EPSS_PASSWD char PROMPT 'Enter EPSS Schema password: '  hide;
    ACCEPT PIC_DIRECTORY char PROMPT 'Enter The Directory where the PIC dump files will be stored:' ;
    ACCEPT EPSS_DUMP_PASSWD char PROMPT 'Enter EPSS_DUMP Schema password: ' hide;
    CREATE user epss_dump10 IDENTIFIED BY &EPSS_DUMP_PASSWD DEFAULT tablespace users TEMPORARY tablespace temp;
    CREATE user epss10 IDENTIFIED BY &EPSS_PASSWD DEFAULT tablespace users TEMPORARY tablespace temp;
    Si vous faite une trace de la variable en problème , est elle toujours correctement renseignée ?

  5. #5
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    J'ai déjà effectué une série de tests pour vérifier la valeur de la variable.
    Afficher cette variable, elle m'affiche &EPSS_DUMP_PASSWD.

    Je viens à l'instant de faire un test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SET ECHO OFF;
    spool epss_dump_schema.log;
    ACCEPT EPSS_DUMP_PASSWD char PROMPT 'Enter EPSS_DUMP Schema password: ' hide;
    ACCEPT EPSS_PASSWD char PROMPT 'Enter EPSS Schema password: ' hide;
    ACCEPT PIC_DIRECTORY char PROMPT 'Enter The Directory where the PIC dump files will be stored:' ;
    prompt &EPSS_DUMP_PASSWD;
    prompt &EPSS_PASSWD;
    prompt &PIC_DIRECTORY;
    Les variables sont bien renseignées.

    Maintenant créer les deux utilisateurs, cela fonctionnera.

    Je viens de pousser un peu plus loin mes tests.

    Je crée mes deux utilisateurs avec lerus différents droits, jusque là pas de problème.

    Si je me connecte via sqlplus avec le premier utilisateur et qu'ensuite je tente une connexion directement avec le deuxième utilisateur cela fonctionne.

    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
    22
    23
    24
    25
     
    SET ECHO OFF;
    spool epss_dump_schema.log;
    ACCEPT EPSS_DUMP_PASSWD char PROMPT 'Enter EPSS_DUMP Schema password: ' hide;
    ACCEPT EPSS_PASSWD char PROMPT 'Enter EPSS Schema password: ' ;
    ACCEPT PIC_DIRECTORY char PROMPT 'Enter The Directory where the PIC dump files will be stored:' ;
    prompt &EPSS_DUMP_PASSWD;
    prompt &EPSS_PASSWD;
    prompt &PIC_DIRECTORY;
    create user epss_dump10 identified by &EPSS_DUMP_PASSWD default tablespace users temporary tablespace temp;
    create user epss10 identified by &EPSS_PASSWD default tablespace users temporary tablespace temp;
    create or replace directory PIC_IMP_DIR as '&PIC_DIRECTORY';
    grant connect,resource to epss_dump10;
    grant dba to epss10;
    grant connect,resource,JAVAUSERPRIV to epss_dump10;
    grant CREATE DATABASE LINK to epss_dump10;
    grant CREATE PUBLIC SYNONYM to epss_dump10;	
    grant CREATE SYNONYM to epss_dump10;
    grant CREATE TABLE to epss_dump10;
    grant CREATE VIEW to epss_dump10;
    grant UNLIMITED TABLESPACE to epss_dump10;
    grant read,write on directory PIC_IMP_DIR to epss_dump10;
    connect epss_dump10/&EPSS_DUMP_PASSWD
    PROMPT 'EPSS PASSWORD: &EPSS_PASSWD';
    connect epss10/&EPSS_PASSWD;
    Maintenant si j'intercale des autres scripts sql entre les connexions des utilisateurs, alors le script plante en me disant login/password incorrect pour le deuxième user.

    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
    22
    23
    24
    25
    26
    27
     
    SET ECHO OFF;
    spool epss_dump_schema.log;
    ACCEPT EPSS_DUMP_PASSWD char PROMPT 'Enter EPSS_DUMP Schema password: ' hide;
    ACCEPT EPSS_PASSWD char PROMPT 'Enter EPSS Schema password: ' ;
    ACCEPT PIC_DIRECTORY char PROMPT 'Enter The Directory where the PIC dump files will be stored:' ;
    prompt &EPSS_DUMP_PASSWD;
    prompt &EPSS_PASSWD;
    prompt &PIC_DIRECTORY;
    create user epss_dump10 identified by &EPSS_DUMP_PASSWD default tablespace users temporary tablespace temp;
    create user epss10 identified by &EPSS_PASSWD default tablespace users temporary tablespace temp;
    create or replace directory PIC_IMP_DIR as '&PIC_DIRECTORY';
    grant connect,resource to epss_dump10;
    grant dba to epss10;
    grant connect,resource,JAVAUSERPRIV to epss_dump10;
    grant CREATE DATABASE LINK to epss_dump10;
    grant CREATE PUBLIC SYNONYM to epss_dump10;	
    grant CREATE SYNONYM to epss_dump10;
    grant CREATE TABLE to epss_dump10;
    grant CREATE VIEW to epss_dump10;
    grant UNLIMITED TABLESPACE to epss_dump10;
    grant read,write on directory PIC_IMP_DIR to epss_dump10;
    connect epss_dump10/&EPSS_DUMP_PASSWD
    @EPSS_DUMP_SCHEMA.sql
    @COMPILE_INVALID_OBJECTS.sql
    PROMPT 'EPSS PASSWORD: &EPSS_PASSWD';
    connect epss10/&EPSS_PASSWD;
    Mon script EPSS_DUMP_SCHEMA.sql est juste un script de création de table avec contraintes, de synonymes, views, packages,....

    Rien qui ne me semble bizarre.

    La seule chose qui me semble bizarre c'est que si j'appelle un autre script à l'intérieur de ce script alors toutes les valeurs des variables ont disparu.

    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
    22
    23
    24
    25
    26
    27
     
    SET ECHO OFF;
    spool epss_dump_schema.log;
    ACCEPT EPSS_DUMP_PASSWD char PROMPT 'Enter EPSS_DUMP Schema password: ' hide;
    ACCEPT EPSS_PASSWD char PROMPT 'Enter EPSS Schema password: ' ;
    ACCEPT PIC_DIRECTORY char PROMPT 'Enter The Directory where the PIC dump files will be stored:' ;
    prompt &EPSS_DUMP_PASSWD;
    prompt &EPSS_PASSWD;
    prompt &PIC_DIRECTORY;
    create user epss_dump10 identified by &EPSS_DUMP_PASSWD default tablespace users temporary tablespace temp;
    create user epss10 identified by &EPSS_PASSWD default tablespace users temporary tablespace temp;
    create or replace directory PIC_IMP_DIR as '&PIC_DIRECTORY';
    grant connect,resource to epss_dump10;
    grant dba to epss10;
    grant connect,resource,JAVAUSERPRIV to epss_dump10;
    grant CREATE DATABASE LINK to epss_dump10;
    grant CREATE PUBLIC SYNONYM to epss_dump10;	
    grant CREATE SYNONYM to epss_dump10;
    grant CREATE TABLE to epss_dump10;
    grant CREATE VIEW to epss_dump10;
    grant UNLIMITED TABLESPACE to epss_dump10;
    grant read,write on directory PIC_IMP_DIR to epss_dump10;
    connect epss_dump10/&EPSS_DUMP_PASSWD
    @EPSS_DUMP_SCHEMA.sql
    PROMPT 'EPSS PASSWORD: &EPSS_PASSWD';
    PROMPT 'EPSS_DUMP PASSWORD: &EPSS_DUMP_PASSWD';
    PROMPT 'PIC DIRECTORY: &PIC_DIRECTORY';
    Les trois prompts me retournent:

    &EPSS_PASSWD
    &EPSS_DUMP_PASSWD
    &PIC_DIRECTORY


    Voilà.

    Merci pour votre aide.

  6. #6
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    A tous hasard
    Avec l'utilisation du double @@ pour l'appel de vos scripts


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code html non pris en compte dans un ToolTip ?
    Par Hujii dans le forum ASP.NET
    Réponses: 8
    Dernier message: 14/05/2009, 19h59
  2. [FPDF] Accents non pris en compte dans mes PDF
    Par beegees dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/05/2009, 13h28
  3. Attribut font-size non pris en compte dans un tableau
    Par malta dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 20/09/2008, 13h58
  4. index non pris en compte dans inner select
    Par eponette dans le forum SQL
    Réponses: 2
    Dernier message: 12/11/2007, 12h47
  5. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57

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