{Oracle}

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. Modérateur
    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
    1. 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