Теперь вот правка ... это полная база данных с актуальным кодом.
PROMPT Creation des tables
DROP TABLE GroupeCours
/
DROP TABLE SessionUQAM
/
DROP TABLE Professeur
/
ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'
/
CREATE TABLE SessionUQAM
(codeSession INTEGER NOT NULL,
dateDebut DATE NOT NULL,
dateFin DATE NOT NULL
)
/
CREATE TABLE Professeur
(codeProfesseur CHAR(5) NOT NULL,
nom VARCHAR(10) NOT NULL,
prenom VARCHAR(10) NOT NULL
)
/
CREATE TABLE GroupeCours
(sigle CHAR(7) NOT NULL,
noGroupe INTEGER NOT NULL,
codeSession INTEGER NOT NULL,
maxInscriptions INTEGER NOT NULL,
codeProfesseur CHAR(5) NOT NULL
)
/
INSERT INTO SessionUQAM
VALUES(32003,'3/09/2003','17/12/2003')
/
INSERT INTO SessionUQAM
VALUES(12004,'8/01/2004','2/05/2004')
/
INSERT INTO Professeur
VALUES('TREJ4','Tremblay','Jean')
/
INSERT INTO Professeur
VALUES('DEVL2','De Vinci','Leonard')
/
INSERT INTO Professeur
VALUES('PASB1','Pascal','Blaise')
/
INSERT INTO Professeur
VALUES('GOLA1','Goldberg','Adele')
/
INSERT INTO Professeur
VALUES('KNUD1','Knuth','Donald')
/
INSERT INTO Professeur
VALUES('GALE9','Galois','Evariste')
/
INSERT INTO Professeur
VALUES('CASI0','Casse','Illa')
/
INSERT INTO Professeur
VALUES('SAUV5','Sauve','Andre')
/
INSERT INTO Professeur
VALUES('loool','Sauve','Andre')
/
INSERT INTO GroupeCours
VALUES('INF1110',20,32003,100,'loool')
/
INSERT INTO GroupeCours
VALUES('INF1110',30,32003,100,'PASB1')
/
INSERT INTO GroupeCours
VALUES('INF1130',10,32003,100,'PASB1')
/
INSERT INTO GroupeCours
VALUES('INF1130',30,32003,100,'GALE9')
/
INSERT INTO GroupeCours
VALUES('INF2110',10,32003,100,'TREJ4')
/
INSERT INTO GroupeCours
VALUES('INF3123',20,32003,50,'GOLA1')
/
INSERT INTO GroupeCours
VALUES('INF3123',30,32003,50,'GOLA1')
/
INSERT INTO GroupeCours
VALUES('INF3180',30,32003,50,'DEVL2')
/
INSERT INTO GroupeCours
VALUES('INF3180',40,32003,50,'DEVL2')
/
INSERT INTO GroupeCours
VALUES('INF5180',10,32003,50,'KNUD1')
/
INSERT INTO GroupeCours
VALUES('INF5180',40,32003,50,'KNUD1')
/
INSERT INTO GroupeCours
VALUES('INF1110',20,12004,100,'TREJ4')
/
INSERT INTO GroupeCours
VALUES('INF1110',30,12004,100,'TREJ4')
/
INSERT INTO GroupeCours
VALUES('INF2110',10,12004,100,'PASB1')
/
INSERT INTO GroupeCours
VALUES('INF2110',40,12004,100,'PASB1')
/
INSERT INTO GroupeCours
VALUES('INF3123',20,12004,50,'GOLA1')
/
INSERT INTO GroupeCours
VALUES('INF3123',30,12004,50,'GOLA1')
/
INSERT INTO GroupeCours
VALUES('INF3180',10,12004,50,'DEVL2')
/
INSERT INTO GroupeCours
VALUES('INF3180',30,12004,50,'DEVL2')
/
INSERT INTO GroupeCours
VALUES('INF5180',10,12004,50,'DEVL2')
/
INSERT INTO GroupeCours
VALUES('INF5180',40,12004,50,'GALE9')
/
COMMIT
/
Теперь вот мой код
CREATE OR REPLACE PROCEDURE TacheEnseignement(codeProfesseur VARCHAR2)
AS
sig VARCHAR2(7);
noGr INTEGER;
codeS INTEGER;
nomP VARCHAR2(10);
prenomP VARCHAR2(10);
dateD DATE;
dateF DATE;
CURSOR ligneGroupe(unCodeProf VARCHAR2) IS
SELECT sigle, noGroupe, codeSession
FROM GroupeCours
WHERE codeProfesseur = unCodeProf ;
BEGIN
OPEN ligneGroupe(codeProfesseur);
LOOP
FETCH ligneGroupe INTO sig, noGr, codeS;
EXIT WHEN ligneGroupe%NOTFOUND;
SELECT nom, prenom INTO nomP, prenomP FROM Professeur WHERE codeProfesseur=codeProfesseur;
SELECT dateDebut, dateFin INTO dateD, dateF FROM SessionUQAM WHERE codeSession=codeS;
IF ( nomP IS NULL OR prenomP IS NULL OR dateD IS NULL OR dateF IS NULL ) THEN
DBMS_OUTPUT.PUT_LINE('The teacher that has ' + codeProfesseur + ' as code is not in the database');
ELSE
DBMS_OUTPUT.PUT_LINE('Code professeur :' || codeProfesseur);
DBMS_OUTPUT.PUT_LINE('Nom :' || nomP);
DBMS_OUTPUT.PUT_LINE('Prenom :' || prenomP);
DBMS_OUTPUT.PUT_LINE('Sigle :' || sig);
END IF;
END LOOP;
CLOSE ligneGroupe;
END TacheEnseignement;
Я все еще пытаюсь выполнить это:
EXECUTE TacheEnseignement('GOLA1');