Oracle - Procedure存储过程

版权声明:转载请注明出处 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');

猜你喜欢

转载自blog.csdn.net/qq_42292831/article/details/91058157
今日推荐