Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/03/2011, 11h13   #1
Membre habitué
 
Avatar de Adenora
 
Femme
Étudiant
Inscription : octobre 2008
Messages : 113
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 113
Points : 118
Points : 118
Par défaut Soucis avec les pointeurs : Types de données incohérents

Bonjour,
Je vous montre la création des types et tables :
Code :
1
2
3
CREATE OR REPLACE type type_parcours AS object (idp varchar2(10), intitulep varchar2(15), genre varchar2(15), date_deb date);
 
CREATE TABLE Parcours1 of type_parcours (constraint pk PRIMARY KEY(idp)) object identifier IS PRIMARY KEY;
Pour la deuxième table, je ne suis pas sûre, mais on nous a donné la relation suivante :
Compo_parcours1 (pt@type_parcours, lesevts {evt varchar2(10)})

que j'ai transformé comme ceci :
Code :
1
2
CREATE OR REPLACE type type_evt AS TABLE of varchar2(10);
CREATE TABLE Compo_parcours1 (pt ref type_parcours, lesevts type_evt) nested TABLE lesevts store AS tevts;

J'insère maintenant un parcours dans la table Parcours1 :
Code :
INSERT INTO Parcours1 VALUES (type_parcours('bla','blabla','roman','01-12-2011'));
Puis j'insère la composition d'un parcours dans la table Compo_parcours1 :
Code :
INSERT INTO Compo_Parcours VALUES ((SELECT ref(p) FROM Parcours1 p WHERE p.idp='bla'), type_evt('1'));
Et là, j'obtiens cette erreur :
Code :
ORA-00932: types de données incohérents ; attendu : NUMBER ; obtenu : REF SYSTEM.TYPE_PARCOURS
J'aurai voulu savoir où était mon erreur.

PS : j'utilise Oracle Database 10g
Adenora est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 19h08   #2
Invité de passage
 
Homme
Administrateur de base de données
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Santé

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 3
Points : 3
dans ton insert

Code :
INSERT INTO Compo_Parcours VALUES ((SELECT ref(p) FROM Parcours1.....
est il normal que tu utilises une table Compo_Parcours que tu n'as pas créé au lieu de Compo_Parcours1 ?
zavatta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 19h37   #3
Membre habitué
 
Avatar de Adenora
 
Femme
Étudiant
Inscription : octobre 2008
Messages : 113
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2008
Messages : 113
Points : 118
Points : 118
Merci de la réponse.
Il faut vraiment que j'aille me coucher.
J'ai corrigé l'erreur idiote et j'ai une autre erreur :
Code :
ORA-22979: impossible d'insérer une REF d'une vue objet ou une REF définie par l'utilisateur
J'ai tenté en ne faisant que ça :
Code :
SELECT ref(p) FROM Parcours1 p WHERE p.idp='bla';
Et j'ai la même erreur que mon premier message.

Edit : j'avais fait une autre erreur dans l'insertion, c'est un "p" minuscule dans "Compo_parcours1", mais toujours le même message.
Adenora est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h12.


 
 
 
 
Partenaires

Hébergement Web