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 22/01/2008, 16h08   #1
Invité régulier
 
Inscription : janvier 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : janvier 2007
Messages : 73
Points : 8
Points : 8
Par défaut question sur date sous oracle oriente object

Bonjour, je ne suis pas sure d'être dans le bon partie de forum mais je la pose comme même donc veuillez m'excuser si je me suis trompé.

voicla j'ai une question actuellement j'ai crée des table et des type
comme ci-dessous

Code :
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
 
CREATE OR REPLACE TYPE PERSONNEL AS object
(
id number(5),
nom varchar(20),
prenom varchar(20),
datenaiss DATE,
adresse varchar(80),
MEMBER PROCEDURE ajouter,
MEMBER FUNCTION getage(age IN NUMBER) RETURN NUMBER,
MEMBER PROCEDURE  afficherinfo,
MEMBER FUNCTION modifadresse(adresse IN VARCHAR) RETURN VARCHAR
) instantiable NOT final;
/
 
CREATE TABLE absence_tb of absence(
constraint tababs_id PRIMARY KEY(id)
)
/
 
CREATE OR REPLACE TYPE BODY PERSONNEL AS
(
MEMBER PROCEDURE ajouter IS
begin
INSERT INTO personnel_tb (seq_personnel_tb.NEXTVAL,nom,prenom,datenaiss,adresse);
end;
MEMBER FUNCTION getage(age IN NUMBER) RETURN NUMBER IS
begin
RETURN(sysdate-datenaiss);
end;
voici ma question :

je souhaiterai savoir si la function getage est bien ecrite et si non savoir comment le corriger.

Merci
PHPkoala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 16h14   #2
Invité régulier
 
Inscription : janvier 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : janvier 2007
Messages : 73
Points : 8
Points : 8
Par défaut question sur oracle oriente object

Bonjour, je ne suis pas sure d'être dans le bon partie de forum mais je la pose comme même donc veuillez m'excuser si je me suis trompé.

voicla j'ai une question actuellement j'ai crée des table et des type
comme ci-dessous

Code :
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
 
CREATE OR REPLACE TYPE PERSONNEL AS object
(
id number(5),
nom varchar(20),
prenom varchar(20),
datenaiss DATE,
adresse varchar(80),
MEMBER PROCEDURE ajouter,
MEMBER FUNCTION getage(age IN NUMBER) RETURN NUMBER,
MEMBER PROCEDURE  afficherinfo,
MEMBER FUNCTION modifadresse(adresse IN VARCHAR) RETURN VARCHAR
) instantiable NOT final;
/
 
DROP TABLE personnel_tb;
CREATE TABLE personnel_tb of personnel (
  constraint tabperso_id PRIMARY KEY(id)
)
/
CREATE OR REPLACE TYPE BODY PERSONNEL AS
(
MEMBER PROCEDURE ajouter IS
begin
INSERT INTO personnel_tb (seq_personnel_tb.NEXTVAL,nom,prenom,datenaiss,adresse);
end;
MEMBER FUNCTION getage(age IN NUMBER) RETURN NUMBER IS
begin
RETURN(sysdate-datenaiss);
end;
voici ma question :

je souhaiterai savoir si la function getage est bien ecrite et si non savoir comment le corriger.

Merci
PHPkoala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 16h24   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ne sachant pas laquelle garder j'ai fusionné les 2 discussions.

A part çà, nous ne sommes pas là pour remplacer le parseur PL/SQL donc crées tes procédures et si tu as un problème inexpliqué alors revient nous demander des infos.

orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 20h57   #4
Invité régulier
 
Inscription : janvier 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : janvier 2007
Messages : 73
Points : 8
Points : 8
Par défaut erreur PLS-00103

bonsoir,
lorsque je lance ce scripte j'ai un message d'erreur PLS-00103 sur la ligne 10/13 et 11/1 et je ne comprend pas pourquoi elle me donne cette errueur.
Merci de votre aide.
Code :
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
DROP sequence seq_personnel_tb;
CREATE Sequence seq_personnel_tb START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TYPE BODY PERSONNEL AS
MEMBER PROCEDURE ajouter IS
begin
INSERT INTO personnel_tb VALUES (seq_personnel_tb.NEXTVAL,'nom','prenom',TO_date('12/10/1984','DD/MM/RRRR'),'adresse');
end;
MEMBER FUNCTION getage(age IN NUMBER) RETURN NUMBER IS
date_auj number;
date_anni number;
begin
date_auj := SELECT to_char(sysdate,'rrrr') FROM dual;
date_anni := SELECT to_char(datenaiss,'rrrr') FROM personnel_tb WHERE id = '2';
RETURN (date_auj-date_anni);
end;
MEMBER PROCEDURE  afficherinfo IS
perso varchar;
begin
perso := SELECT (id,nom,prenom,datenaiss,adresse) FROM personnel WHERE id = '2';
dbms_output.put_line(perso);
end;
MEMBER FUNCTION modifadresse(adresse IN VARCHAR) RETURN VARCHAR IS
begin
UPDATE personnel SET adresse="modif" WHERE id ="2";
end;
end;
/
PHPkoala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 20h59   #5
Invité régulier
 
Inscription : janvier 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : janvier 2007
Messages : 73
Points : 8
Points : 8
Par défaut errueur PLS-00103 lors de lancement de mon script

bonsoir,
lorsque je lance ce scripte j'ai un message d'erreur PLS-00103 sur la ligne 10/13 et 11/1 et je ne comprend pas pourquoi elle me donne cette errueur.
Merci de votre aide.
Code :
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
DROP sequence seq_personnel_tb;
CREATE Sequence seq_personnel_tb START WITH 1 INCREMENT BY 1;
CREATE OR REPLACE TYPE BODY PERSONNEL AS
MEMBER PROCEDURE ajouter IS
begin
INSERT INTO personnel_tb VALUES (seq_personnel_tb.NEXTVAL,'nom','prenom',TO_date('12/10/1984','DD/MM/RRRR'),'adresse');
end;
MEMBER FUNCTION getage(age IN NUMBER) RETURN NUMBER IS
date_auj number;
date_anni number;
begin
date_auj := SELECT to_char(sysdate,'rrrr') FROM dual;
date_anni := SELECT to_char(datenaiss,'rrrr') FROM personnel_tb WHERE id = '2';
RETURN (date_auj-date_anni);
end;
MEMBER PROCEDURE  afficherinfo IS
perso varchar;
begin
perso := SELECT (id,nom,prenom,datenaiss,adresse) FROM personnel WHERE id = '2';
dbms_output.put_line(perso);
end;
MEMBER FUNCTION modifadresse(adresse IN VARCHAR) RETURN VARCHAR IS
begin
UPDATE personnel SET adresse="modif" WHERE id ="2";
end;
end;
/
PHPkoala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 21h30   #6
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 319
Points : 5 837
Points : 5 837
Et pourtant c'est simple. Il suffit de mettre les choses dans leur bon ordre:
avant d'écrire des programmes il faut commencer par la lecture de la documentation, voir la lecture des exemples fournies.
Et il est fortement souhaitable dans la mesure du possible de comprendre ce qu'on fait.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 23h34   #7
Membre habitué
 
Inscription : janvier 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 148
Points : 145
Points : 145
PHPKoala n'a pas tord ceci-dit pour te débloquer, la syntaxe que tu utilises n'est pas correct.

Code :
1
2
3
 
date_auj := SELECT to_char(sysdate,'rrrr') FROM dual;
date_anni := SELECT to_char(datenaiss,'rrrr') FROM personnel_tb WHERE id = '2';
S'ecrirait plutot
Code :
1
2
3
4
 
date_auj := to_char(sysdate,'rrrr');
 
SELECT to_char(datenaiss,'rrrr') INTO date_anni  FROM personnel_tb WHERE id = '2';
Des tutoriaux PL/SQL présents sur developpez.com sont très bien fait n'hésite pas à faire un check rapide dessus :/
Delwyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 23h48   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
c'est quoi ce MEMBER qui traine avant FUNCTION ou PROCEDURE ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 23h50   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
merci d'éviter de créer des discussions à gogo... pour un bête problème de syntaxe en plus
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2008, 00h09   #10
Invité régulier
 
Inscription : janvier 2007
Messages : 73
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : janvier 2007
Messages : 73
Points : 8
Points : 8
Merci de votre aide, j ai essaye de supprimer les messages d'avant mais j'avais pas les droit.

pb de syntax qui me prend la tête depuis 6hr.
en tout cas je vais faire un peux plus de recherche

merci
PHPkoala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2008, 07h45   #11
Membre habitué
 
Inscription : janvier 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 148
Points : 145
Points : 145
Bon courage
Delwyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2008, 09h09   #12
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 319
Points : 5 837
Points : 5 837
Citation:
Envoyé par PHPkoala Voir le message
...

pb de syntax qui me prend la tête depuis 6hr.
...
merci
Si tu avait lu la doc et analysé un exemple cela t'aurais pris maximum 10 minutes. Voila, pourquoi faire les choses dans leur ordre c'est important.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h09.


 
 
 
 
Partenaires

Hébergement Web