版权声明:转载请注明出处 https://blog.csdn.net/qq_42292831/article/details/91058157
【求所有学生个数的存储过程】
SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE STUDENT_NUMBER
AS
TOTAL NUMBER(3);
BEGIN
SELECT COUNT(SNO) INTO TOTAL FROM STUDENT;
DBMS_OUTPUT.PUT_LINE('学生总人数:'||TOTAL);
END;
/
EXECUTE STUDENT_NUMBER();
【按照学号求学生姓名的存储过程】
SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE STUDENT_INFO(S_NO IN STUDENT.SNO%TYPE)
AS
STUDENTE_DATA STUDENT.SNAME%TYPE;
BEGIN
SELECT SNAME INTO STUDENTE_DATA FROM STUDENT WHERE SNO = S_NO;
DBMS_OUTPUT.PUT_LINE(STUDENTE_DATA);
END;
/
EXECUTE STUDENT_INFO('96001');
【按照学号求学生信息的存储过程】
SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE STUDENT_INFO(S_NO IN STUDENT.SNO%TYPE)
AS
STUDENTE_DATA STUDENT%ROWTYPE;
BEGIN
SELECT * INTO STUDENTE_DATA FROM STUDENT WHERE SNO = S_NO;
DBMS_OUTPUT.PUT_LINE(STUDENTE_DATA.SNO||' '||STUDENTE_DATA.SNAME||' ' ||STUDENTE_DATA.SDEPT
||' '||STUDENTE_DATA.SCLASS||' '||STUDENTE_DATA.SSEX||' '||STUDENTE_DATA.SAGE);
END;
/
EXECUTE STUDENT_INFO('96001');
【按照学号求学生所有课程成绩的存储过程】
SET SERVEROUTPUT ON;
CREATE OR REPLACE PROCEDURE SCORE_INFO(S_NO IN SCORE.SNO%TYPE)
AS
CURSOR CUR_SCORE_INFO IS
SELECT * FROM SCORE WHERE SNO = S_NO;
BEGIN
FOR I IN CUR_SCORE_INFO LOOP
DBMS_OUTPUT.PUT_LINE(I.SNO||' '||I.CNO||' '||I.SCORE);
END LOOP;
END;
/
EXECUTE SCORE_INFO('96001');