{Oracle}

foxrol Messages postés 1 Date d'inscription   Statut Membre -  
jee pee Messages postés 9442 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour

Excusez moi de vous déranger mais j'ai un énorme problème.

Je voudrais savoir s'il est possible dans un script de création de schéma sous oracle ne pas coder certaines informations en dur.

En effet je voudrais inscrire certaine informations comme le nom de la tablespace en variables et lors de l'exécution du script, ces informations seront lues à partir d'un fichier.

S'il est possible de le faire merci de me le dire et me donner un exemple.
Configuration: Windows XP
Firefox 3.0.11

2 réponses

  1. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    En fait, il faut que tu passes par un fichier temporaire:
    echo create tablespace %1>>mon_fichier.sql
    echo datafile 'ton_chemin' size 512M>>mon_fichier.sql
    echo autoextend on next 512M;>>mon_fichier.sql
    echo create user %2 identified by mon_passwd>>mon_fichier.sql
    echo default tablespace %1>>mon_fichier.sql
    echo temporary tablespace temp;>>mon_fichier.sql
    sqlplus user/password@mon_instatnce @mon_fichier.sql
    ainsi quand tu lances ton batch, tu passes en arg le nom de ton tablespace et le nom du user...
    J'espere ca pourra t'aider!!
    @+
    0
  2. jee pee Messages postés 9442 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    Salut,

    Il est possible de faire un fichier de variables (.sql) qui est lancé avant la création de l'objet comme :

    envt.sql :
    rem  PETIT ESPACE
    rem
    def  cm_init_t1 = 10k
    def  cm_next_t1 = 10k
    def  cm_maxi_t1 = 25
    def  cm_pcti_t1 = 0
    def  cm_pctf_t1 = 5

    Et le script de création d'une table en lançant ce sql récupère les variables qui sont utilisées dans le storage du create table :

    acc_appl.sql :
    Rem  DESCRIPTION DES ACCES POSSIBLES A CHAQUE APPLICATION
    Rem
    
    start envt.sql
    
    Create table acc_appl
         (cod_module       varchar2(2)  not null, 
          cod_sous_mod     varchar2(6)  not null,
          typ_acces        varchar2(2)  not null  
         )
    storage
      (  initial     &cm_init_t1
         next        &cm_next_t1
         maxextents  &cm_maxi_t1
         pctincrease &cm_pcti_t1
      )  pctfree     &cm_pctf_t1
    /
    

    Cdlt
    0