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

Oracle Discussion :

Insertion dans des colonnes virtuelles qui ne le sont pas ?


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut Insertion dans des colonnes virtuelles qui ne le sont pas ?
    bonjour,

    j'essaie de compiler une procédure et il m'indique, pour la requete insert "les colonnes virtuelles ne sont pas autorisées ici" ; or, il s'agit bel et bien d'une table, j'en suis sûr !
    Pourriez vous me dire ce qui ne va pas ?

    Merci

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    CREATE OR REPLACE PROCEDURE M4SPH_DADSU_s10_g01_01(S10_G01_01_010 IN VARCHAR2,datefin IN DATE) IS
     
     
    separateur VARCHAR(1):=NULL;
     
     
    --Année déclarée
    dt_aa_exe NUMBER(4);
    organization VARCHAR2(4):='00';
    id_sub_leg_ent varchar2(9):='00';
    num_sec_soc varchar2(13):='000000000000';
    dt_deb_per_act DATE:=to_date ('18000101','YYYYMMDD');
     
    -- Code civilité de la personne contact émetteur
    S10_G01_01_001_001 VARCHAR2(2);
    -- Nom et prénom de la personne contact émetteur
    S10_G01_01_001_002 VARCHAR2(80);
    --Code domaine d'intervention
    S10_G01_01_002 VARCHAR2(2):='02';
    --Adresse mél
    S10_G01_01_005 VARCHAR2(100);
    --Adresse téléphonique
    S10_G01_01_006 VARCHAR2(20);
    --Adresse fax
    S10_G01_01_007 VARCHAR2(20);
     
    chiffre number;
     
    BEGIN
     
    SELECT sph_dt_aa_exe into dt_aa_exe FROM m4sph_tfa_par_exp WHERE std_id_leg_ent='00' AND sco_id_hr='0000000000000' and sph_dt_mm_pay='00';
     
     
    -- A-t-on un centre émetteur ?
    select count(*) INTO chiffre FROM m4sph_tfa_par_dads where sph_bl_sle_emetteur='1';
     
     
    If  chiffre > 0 THEN
    -- Il y a un établissement émetteur
     
    --Récupération du sire et du nic
    SELECT sph_cod_civil,sph_nm_nom||' '|| sph_nm_prenom, 
    sph_nm_email ,
    sph_num_tel,
    sph_num_fax
    INTO 
    S10_G01_01_001_001,
    S10_G01_01_001_002,
    S10_G01_01_005 ,
    S10_G01_01_006,
    S10_G01_01_007
    FROM m4sph_tfa_par_dads 
    WHERE sph_bl_sle_emetteur='1';
     
    ELSE
    SELECT sph_cod_civil,
    sph_nm_nom||' '|| sph_nm_prenom, 
    sph_nm_email ,
    sph_num_tel,
    sph_num_fax
    INTO S10_G01_001_001_001,
    S10_G01_01_001_002,
    S10_G01_01_005,
    S10_G01_01_006,
    S10_G01_01_007
    FROM m4sph_cent_trt;
     
    END IF;
     
     
    ------------INSERTION----------------------
    INSERT INTO m4sph_S10_G01_01 (
    sph_dt_aa_exe,
    id_organization,
    sfr_id_sub_leg_ent,
    sph_num_sec_soc,
    sph_dt_deb_per_act,
    S10_G01_01_001_001,
    S10_G01_01_001_002,
    S10_G01_01_002,
    S10_G01_01_005,
    S10_G01_01_006,
    S10_G01_01_007
    )
    VALUES
    (
    dt_aa_exe,
    organization,
    id_sub_leg_ent,
    num_sec_soc,
    dt_deb_per_act,
    S10_G01_01_001_001,
    S10_G01_01_001_002,
    S10_G01_01_002,
    S10_G01_01_005,
    S10_G01_01_006,
    S10_G01_01_007
    );
     
    END M4SPH_DADSU_s10_g01_01;
    /
    show errors;

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    copier/coller de l'erreur compléte STP

    et version

  3. #3
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    76/21 PL/SQL: ORA-01733: les colonnes virtuelles ne sont pas autorisées ici

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    m4sph_S10_G01_01 est une vue ???

    http://ora-01733.ora-code.com/

  5. #5
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    non, justement ; c'est une table, je viens de la recréer au cas où et c'est vraiment une table ! :'(

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Je viens d'avoir absolument la même erreur avec une autre table ;
    le fait que ce soit des synonymes peut jour ?
    (je ne pense pas ; j'ai testé avec monschema.s10... et ça me fait la même erreur)

    Une erreur au niveau du grant ?
    J'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grand insert,delete, select on s10... to monuser

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    bizarre... que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT object_type FROM user_objects where object_name = 'M4SPH_S10_G01_01';
    Et le synonyme est créé comment ?

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est pas une table temporaire ?

  9. #9
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    bonjour

    1/ tu utilises des noms de variables dans ton script PL identique à tes noms de colonnes
    2/ tu dois utiliser le SQL DYNAMIQUE dans ton ordre INSERT
    (cf EXECUTE IMMEDIATE)

    @
    PpPool

  10. #10
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    je ne vois rien de ça moi
    sph_dt_aa_exe -> dt_aa_exe
    id_organization -> organization etc...

    Et pourquoi un SQL Dynamique ?

  11. #11
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut Re: Insertion dans des colonnes virtuelles qui ne le sont pa
    salut orafrance,

    Citation Envoyé par szdavid

    ------------INSERTION----------------------
    INSERT INTO m4sph_S10_G01_01 (
    sph_dt_aa_exe,
    id_organization,
    sfr_id_sub_leg_ent,
    sph_num_sec_soc,
    sph_dt_deb_per_act,
    S10_G01_01_001_001,
    S10_G01_01_001_002,
    S10_G01_01_002,
    S10_G01_01_005,
    S10_G01_01_006,
    S10_G01_01_007

    )
    VALUES
    (
    dt_aa_exe,
    organization,
    id_sub_leg_ent,
    num_sec_soc,
    dt_deb_per_act,
    S10_G01_01_001_001,
    S10_G01_01_001_002,
    S10_G01_01_002,
    S10_G01_01_005,
    S10_G01_01_006,
    S10_G01_01_007

    );

    [/code]
    les variables comme S10_G01_01_001_001 sont déclarées en tant que VARCHAR2

    @
    PpPool

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    exact ça m'avait échappé... trop évident

  13. #13
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Comme quoi l'habitude de baptiser ses variables v_xxx et ses paramètres p_xxx n'est pas idiote
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    clair

  15. #15
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 134
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Même si le fait d'avoir le même nom entre variable et nom de colonne n'est pas propre, il ne génère pas pour autant un message d'erreur ...

  16. #16
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    exact :
    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
     
    SQL> create table dvp (col1 number, col2 number);
     
    Table créée.
     
    SQL> declare 
      2  col2 number := 1;
      3  begin
      4  insert into dvp (col1,col2) 
      5  values (1,col2);
      6  end;
      7  /
     
    Procédure PL/SQL terminée avec succès.
     
    SQL> select * from dvp;
     
          COL1       COL2
    ---------- ----------
             1          1
     
    SQL>

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/06/2015, 15h14
  2. Réponses: 2
    Dernier message: 21/04/2012, 23h53
  3. [MySQL] problème d'insertion dans des tables qui contiennent des clés étrangère
    Par shurik'n dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 13/04/2012, 21h32
  4. INTERBASE 5.5 insertion dans une colonne BLOB
    Par mariustrezor dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/10/2004, 18h06

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