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 :

creation de "TYPE OBJECT" avec des methodes


Sujet :

Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut creation de "TYPE OBJECT" avec des methodes
    Bonjour,

    je realise un petit script sql permettant de crèè tout les TYPE necessaire.

    lorsqu'il compile mes TYPE simple(sans methode integrè) aucun problème
    mais un de mes type doit posseder des methodes internes

    le type est crèè avec succès mais pas son corps, il me renvoi

    Avertissement : Corps de type crèè avec des erreur de compilation
    voici un extrait de mon script

    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
    ...
    /
    CREATE TYPE t_carte_abonnee AS OBJECT (
    	dvd_points NUMBER(10),
    	nbre_dvd_louer NUMBER(10),
    	dvd_louer t_list_location,
    	MEMBER PROCEDURE CrediterCarte (credit IN NUMBER),
    	MEMBER FUNCTION LouerDVD (dvdLouer IN REF t_dvd) RETURN VARCHAR,
    	MEMBER FUNCTION RestituerDVD (dvdLouer IN REF t_dvd) RETURN VARCHAR
    	);
    /
    CREATE TYPE BODY t_carte_abonnee IS
    	MEMBER PROCEDURE CrediterCarte (credit IN NUMBER) IS
    	BEGIN
    		dvd_points := dvd_points + credit;
    	END CrediterCarte;
     
    	MEMBER FUNCTION LouerDVD (dvdLouer IN REF t_dvd) RETURN VARCHAR IS
    	BEGIN
    		return "LIMITE DE LOCATION ATTEINTE";
    	END LouerDVD;
     
    	MEMBER FUNCTION RestituerDVD (dvdLouer IN REF t_dvd) RETURN VARCHAR IS
    	BEGIN
    		return "LIMITE DE LOCATION ATTEINTE";
    	END RestituerDVD;
    END;
    /

    PS: en meme temps si quelqu'un pouvais m'expliquer la difference entre "IS" et "AS" car je n'ai rien trouver de très precis a se sujet


    merci pour tout

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Fait un show errors après création pour avoir l'erreur en sqlplus
    Pour IS et AS disons que souvent c'est la même chose.
    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
     
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 
    Connected as mni
     
    SQL> 
    SQL> CREATE Or Replace TYPE t_carte_abonnee AS OBJECT (
      2   attrib number,
      3   MEMBER FUNCTION f RETURN VARCHAR
      4  )
      5  /
     
    Type created
    SQL> CREATE Or Replace TYPE t_carte_abonnee IS OBJECT (
      2   attrib number,
      3   MEMBER FUNCTION f RETURN VARCHAR
      4  )
      5  /
     
    Type created
    SQL> create or replace TYPE Body t_carte_abonnee Is
      2   MEMBER FUNCTION f RETURN VARCHAR Is
      3   Begin
      4     return Null;
      5   End;
      6  End;
      7  /
     
    Type body created
     
    SQL> show errors
    No errors for TYPE BODY MNI.T_CARTE_ABONNEE
     
    SQL>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    desoler pour la reponse tardive

    2jours de recherche pour....quelque guillement!!

    quoi de plus simple(pour etre sur de ne pas fair d'erreur) que de fair renvoyer un message a un fonction qui a pour retour une chaine de caractere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return "fonction executer";
    pas si simple!! a cause du double quote le compilateur a vue "fonction executer" comme autre chose qu'une chaine de caractere

    avec un simple quote ' tout va bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un object instancié prend-til plus d'espace avec des methodes statiques?
    Par Manau2000 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 15/02/2011, 17h38
  2. [MCD] 3 types dont un avec des associations différentes
    Par CinePhil dans le forum Schéma
    Réponses: 11
    Dernier message: 18/07/2010, 02h17

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