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

PL/SQL Oracle Discussion :

Créer des tables incrémentées avec une boucle


Sujet :

PL/SQL Oracle

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut Créer des tables incrémentées avec une boucle
    Bonjour tlm,

    Je cherche un moyen de créer une boucle qui crée une tableN°1 puis 2, 3,....

    je ne trouve pas le moyen associé le nom de la table avec le numéro incrémenté par la boucle.


    Merci de votre aide

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Est-ce quelque chose comme ça que vous voulez ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set serveroutput on
    declare
        v_commande varchar2(200);
    begin
        for num_table in 1..5 loop
            v_commande:='create table tab' || num_table || '(col1 number, col2 number)';
            dbms_output.put_line(v_commande);
            -- execute immediate v_commande;
        end loop;
    end;
    /

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 544
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 544
    Billets dans le blog
    10
    Par défaut
    Si vos tables ont des descriptions différentes, ça risque de devenir l'usine à gaz pour piloter la description
    Quel est le besoin fonctionnel ?

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    non elles ne different pas entres elles. elles ont la meme construction. je veux juste pourvoir constuit plusieurs tables identiques en fonction du nombre de classes qui acceuilleront des eleves.
    Je sais qu'il suffit de rajouter une colonne avec Numero de classe mais je voulais faire de cette façon.

    pour l'exemple je vais tester. j'ai essayé de cette facon la mais ca n a rien donné


    Merci encore

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Est-ce quelque chose comme ça que vous voulez ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set serveroutput on
    declare
        v_commande varchar2(200);
    begin
        for num_table in 1..5 loop
            v_commande:='create table tab' || num_table || '(col1 number, col2 number)';
            dbms_output.put_line(v_commande);
            -- execute immediate v_commande;
        end loop;
    end;
    /
    Merci ça marche

    maintenant je voudrais lancer une requete dans cette boucle du type "@itable.txt". en execute immediat il ecrit bien comme il faut mais ne l'execute pas. est ce une limite de la commande execute immediat ?

    encore merci

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    ce qui me pose probleme maintenant c'est les date.

    je declare une variable globale à l'aide d'une invite

    et lorsque que je l'incorpore dans ma boucle y a des soucis de cote

    il s'attend à a ce qui suit :

    PLS-00103: Encountered the symbol "20151101" when expecting one of the following:
    . ( * @ % & = - + ; < / > at in is mod not rem
    <an exponent (**)> <> or != or ~= >= <= <> and or like

    faut il une variable locale avant ou il faut un autre moyen pour insert des date dans un between

    merci d'avance

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 544
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 544
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par bozizou Voir le message
    non elles ne different pas entres elles. elles ont la meme construction. je veux juste pourvoir constuit plusieurs tables identiques en fonction du nombre de classes qui acceuilleront des eleves.
    Je sais qu'il suffit de rajouter une colonne avec Numero de classe mais je voulais faire de cette façon.

    pour l'exemple je vais tester. j'ai essayé de cette facon la mais ca n a rien donné


    Merci encore
    En ce cas, pourquoi ne pas faire plutôt une table partitionnée ayant le n° de classe comme clef de partionnement
    Ce serait plus facile à maintenir, et plus facile à sécuriser.

  8. #8
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    En ce cas, pourquoi ne pas faire plutôt une table partitionnée ayant le n° de classe comme clef de partionnement
    Ce serait plus facile à maintenir, et plus facile à sécuriser.

    Si je fais ainsi me permet dans un deuxieme temps de réaliser des requetes répétées autant qu'il y a de classe. et comme les classes varient d'une année à lautre cela me permet de centraliser mes actions. je modifie ma liste d'eleves puis le nombre de classe mais j'execute les memes demandes. du coup la gestion des quote pour les dates posent un souci dans lors de l'excute immediate


    je serai intéressé par le partionnement des tables si un tuto ou doc existe, je suis preneur

    merci d'avance

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 544
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 544
    Billets dans le blog
    10
    Par défaut
    En cherchant sur ce forum il y a certainement la description détaillée du partitionnement

    En quelques mots, il s'agit d'attribuer plusieurs espaces physiques attribués au stockage des données d'une même table, et répartis en fonction d'un critère de partitionnement précisé dans le DDL
    Le partitionnement est décrit par plage, la valeur indiquée est la limite de plage répété autant de fois qu'on a besoin de plages, et qui peut être modifié à tout moment

    Cette architecture permet de paralléliser des travaux et optimiser ainsi les temps de traitement, en particulier quand le volume est très important (plusieurs 100 aines de millions de lignes et au delà)

    Elle permet aussi de passer des utilitaires sur certaines partitions avec un verrou exclusif, pendant que les autres sont accessibles aux traitements, c'est donc très pratique

  10. #10
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    merci pour l'info. je vais regarder ça de plus prés

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2015, 14h44
  2. Créer plusieurs edits texts avec une boucle
    Par mokochan dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 31/05/2013, 12h58
  3. [Toutes versions] Relier des tables Access avec une application Java
    Par faracha21 dans le forum Access
    Réponses: 4
    Dernier message: 20/03/2010, 11h37
  4. Utilisation des tables temporaires avec une vue
    Par patic dans le forum Requêtes
    Réponses: 0
    Dernier message: 18/09/2009, 18h56
  5. Réponses: 5
    Dernier message: 15/04/2009, 15h38

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