begin process at 2012 05 27 00:16:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Oracle

 > 

Débutant(s)

 > 

probleme oracle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme oracle

dimanche 27 décembre 2009 à 02:08:10 | probleme oracle

celeste87

Slt à tous
j'ai un probleme avec mon package MAJ_SALARIES(qui permet de mettre à jour la table salarié et pour un salarié si j'insere un enfant je mets à jour le nombre d'enfants) Voici mon package
CREATE OR REPLACE BODY PACKAGE MAJ_SALARIES is
procedure P_INS_SALARIES(CODE_F NUMBER,CODE_P NUMBER,NUMERO_ET NUMBER, NOM_S varchar2,PRENOM_S VARCHAR2,DATE_NAISSANCE DATE,CODE_POST NUMBER,NUM NUMBER,TELEPHONE_S NUMBER,EMAIL_S VARCHAR2,NUMERO_SS_S NUMBER, ANCIENNETE_S NUMBER, DATE_ENTREE_S DATE, NOMBRE_ENFANTS_S NUMBER)is
begin
if(CODE_F is not null and CODE_P is not null and NUMERO_ET is not null and NOM_S is not null and PRENOM_S is not null and DATE_NAISSANCE is not null and CODE_POST is not null and NUM is not null and TELEPHONE_S is not null and EMAIL_S is not null and NUMERO_SS_S is not null and ANCIENNETE_S is not null and DATE_ENTREE_S is not null NOMBRE_ENFANTS_S is not null) then

insert into SALARIES values (INC_MATRICULE.nextval,CODE_F,CODE_P,NUMERO_ET ,upper(NOM_S),initcap(PRENOM_S),TO_date(DATE_NAISSANCE,'DD/MM/YYYY'), CODE_POST, NUM, TELEPHONE_S,EMAIL_S, NUMERO_SS_S, ANCIENNETE_S,DATE_ENTREE_S, NOMBRE_ENFANTS_S);
DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' enregistrement(s) inséré(s)') ;
end if;
if( NOM_S is null)then
DBMS_OUTPUT.PUT_LINE('entrer le nom du salarié ayant pour numéro'||':'||MAT||'.');
end if;
if( PRENOM_S is null)then
DBMS_OUTPUT.PUT_LINE('entrer le prenom du salarié ayant pour numéro'||':'||MAT||'.');
end if;

if( DATE_NAISSANCE is null)then
DBMS_OUTPUT.PUT_LINE('entrer la date de naissance du salarié ayant pour numéro'||':'||MAT||'.');
end if;
if( TELEPHONE_S is null)then
DBMS_OUTPUT.PUT_LINE('entrer le numéro de téléphone du salarié ayant pour numéro'||':'||MAT||'.');
end if;
if( EMAIL_S is null)then
DBMS_OUTPUT.PUT_LINE('entrer l'email du salarié ayant pour numéro'||':'||MAT||'.');
end if;

if( NUMERO_SS_S is null)then
DBMS_OUTPUT.PUT_LINE('entrer le numéro de sécurité social ayant pour numéro'||':'||MAT||'.');
end if;

if( DATE_ENTREE_S is null)then
DBMS_OUTPUT.PUT_LINE('entrer la date d'entrée du salarié ayant pour numéro'||':'||MAT||'.');
end if;
end;


procedure P_DEL_SALARIES(MAT NUMBER)is
begin
delete from SALARIES where MATRICULE=MAT;
DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' enregistrement(s) supprimé(s)') ;
end;

procedure P_UPD_SALARIES (MAT NUMBER,CODE_F NUMBER,CODE_P NUMBER,NUMERO_ET NUMBER, NOM_S varchar2,PRENOM_S VARCHAR2,DATE_NAISSANCE DATE,CODE_POST NUMBER,NUM NUMBER,TELEPHONE_S NUMBER,EMAIL_S VARCHAR2,NUMERO_SS_S NUMBER, ANCIENNETE_S NUMBER, DATE_ENTREE_S DATE, NOMBRE_ENFANTS_S NUMBER) is
begin
update SALARIES set NOM=NOM_S, PRENOM= PRENOM_S, DATE_DE_NAISSANCE= DATE_NAISSANCE , CODE_FAMILLE=CODE_F, CODE_POSTE=CODE_P , NUMERO_ETS=NUMERO_ET,CODE_POSTAL=CODE_POST, TELEPHONE= TELELEPHONE_S, EMAIL=EMAIL_S, NUMERO_SS=NUMERO_SS_S, DATE_ENTREE_S=TO_date(DATE_ENTREE_S,'DD/MM/YYYY') where MATRICULE=MAT;
DBMS_OUTPUT.PUT_LINE( To_char( SQL%ROWCOUNT ) || ' enregistrement(s) mis à jour') ;

end;

function FC_ANCIENNETE_SALARIES( MAT NUMBER) return NUMBER is
ANCIEN NUMBER;
ENTREE DATE;
begin
SELECT DATE_ENTREE into ENTREE FROM SALARIES WHERE MATRICULE= MAT;
SELECT months_between(trunc(sysdate,'MONTH'),trunc(ENTREE,'MONTH')) / 12 into ANCIEN FROM Dual;
Update SALARIES SET ANCIENNETE=ANCIEN WHERE MATRICULE=MAT;
return ANCIEN;
end;

function FC_NOMBRE_ENFANTS_S(MAT NUMBER,NUMERO_ENFANT NUMBER) return NUMBER
is
begin
Update SALARIES SET NOMBRE_ENFANTS=NOMBRE_ENFANTS+1 WHERE MATRICULE=MAT ;
return NOMBRE_ENFANTS;
end;
end MAJ_SALARIES;

et j'obtiens cette erreur :ORA-00922: option erronée ou absente


Voici les tables que j'utilise:
create table SALARIES(
MATRICULE NUMBER(10),
CODE_FAMILLE NUMBER(10),
CODE_POSTE NUMBER(5),
NUMERO_ETS number(10),
NOM varchar2(20) not null,
PRENOM varchar2(20) not null,
DATE_DE_NAISSANCE_S date not null,
CODE_POSTAL NUMBER(5),
NUMERO NUMBER(10),
TELEPHONE NUMBER(10)not null,
EMAIL VARCHAR2(20) not null,
NUMERO_SS NUMBER(20) NOT NULL,
ANCIENNETE NUMBER(2) not null,
DATE_ENTREE DATE not null,
NOMBRE_ENFANTS not null,
constraint SALARIES_pk primary key (MATRICULE),
constraint VILLE_S_Fk FOREIGN key (CODE_POSTAL) REFERENCES VILLE(CODE_POSTAL),
constraint ENTREPRISE_S_Fk FOREIGN key (NUMERO_ETS) REFERENCES ENTREPRISE(NUMERO_ETS),
constraint ADRESSEE_S_Fk FOREIGN key (NUMERO) REFERENCES ADRESSE (NUMERO),
constraint POSTE_S_Fk FOREIGN key (CODE_POSTE) REFERENCES POSTE (CODE_POSTE),
constraint NOM_S_maj check (NOM= UPPER(NOM)),
CONSTRAINT ANCIENNETE_MAJ CHECK (ANCIENNETE >=0),
CONSTRAINT PRENOM_S_MAJ CHECK (PRENOM=INITCAP(PRENOM)),
CONSTRAINT NUMERO_SS_MAJ CHECK (NUMERO_SS >0),
CONSTRAINT NOMBRE_ENFANTS_MAJ CHECK (NOMBRE_ENFANTS>=0)
);



create table AVOIR(
MATRICULE NUMBER(10) REFERENCES SALARIES(MATRICULE),
NUM_ENFANT NUMBER(10)REFERENCES ENFANTS(NUM_ENFANT),
constraint AVOIR_pk primary key (MATRICULE,NUM_ENFANT),
);


Table enfants
create table ENFANTS(
NUM_ENFANT number(10),
NOM_E varchar2(20) not null,
PRENOM_E VARCHAR2(20) not null,
DATE_DE_NAISSANCE DATE NOT NULL,
AGE_ENFANT NUMBER(10) DEFAULT 0 not null,
constraint ENFANTS_pk primary key (NUM_ENFANT),
constraint NOM_E_MAJ check (NOM_E=upper(NOM_E)),
constraint PRENOM_E_maj check (PRENOM_E=initcap(PRENOM_E)),
constraint AGE_maj check(AGE_ENFANT>=0)
);
Merci d'avance
dimanche 27 décembre 2009 à 18:08:03 | Re : probleme oracle

celeste87

c'est bon j'ai trouvé mon probleme..Dsolé pour le derangement


Cette discussion est classée dans : date, code, number, not, is


Répondre à ce message

Sujets en rapport avec ce message

un gran pb de redondance [ par mehdi911 ] Mehdi j ai table assid_emp code : code assid matricule :emp date_assid : date d absence Probleme de requete Date [ par Neocarter ] Bonjour a tous,J'ai actuellement un petit probleme dans une de mes requetes SQL. En effet, a chaque demarrage, j'ai l'erreur "Fonction 'Date' non defi probleme urgent de triggers____ aidez moi SVP-- [ par adilol ] bonjour tout le monde,      SVP,aidez moi,j ai un probleme a resoudre dans 24h c tellement urgent.    voici le probleme:    je dois creer un trigger q optimisation requete sous sql server 7 [ par lulu1537 ] Bonjour, j'ai une table ainsi crée sous Sql server 7tblCUMULS_ELEMENTS(    DATE_VENTE  date,     CODE_ELEMENT varchar(13),     CODE_RAYON varchar(10), recuperer et afficher un prix [ par laloire33150 ] Bonjour, j'ai un problème que je n'arrive pas à régler, je suis débutant J'ai créé une bdd avec des produits et les prix et refs Depuis ma page je r Une requete qui renvoie NULL [ par fzed51 ] SELECT  SUM((HOUR(Fin)*60+MINUTE(Fin))-(HOUR(Debut)*60+MINUTE(Debut))) FROM horaire WHERE (WEEK(Date, 1)=1);Cette requète doit renvoyer la somme (en m Probleme requete [ par mathvez ] Bonjour j'ai une requete SQL:SELECT Emp_Code, Srv_Code, Sec_Code, Zon_Code, Emp_UserID,Max(datediff(day,isnull(Date_Debut,'2007-01-01'),isnull(Date_Fi Sélectionné uniquement la date de demain [ par vincej ] Bonjour, Je cherche a récupérer uniquement les enregistrements qui date de demain. voila comment j'ai précédé : [code=php]$itomorrow = time () + 86 BETWEEN date sans le jours [ par Fayo ] Bonsoir à tous, J'aimerai récupérer tous les enregistrements d'une table, dans un intervalle de temps. Le champs date de ma table est un datetime, s Problême de Requête SQL dans une BdD [ par waldyl ] Bonjour à toutes et à tous :) J'ai un petit soucis au niveau d'une requête, je me remet donc à vous, sans vous sur-estimez [^^happy8] Voila l'idée


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,824 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales