Если вы используете синтаксис ANSI SQL PL, ваша процедура будет выглядеть примерно так, как показано ниже.
Обратите внимание, что переменные и параметры не должны начинаться с символа @, в отличие от других СУБД.
Использование соглашения об именах, например p_
для обозначения параметра, или v_
для обозначения переменной - это просто необязательный шум, но некоторым это нравится.
CREATE or replace PROCEDURE My_StrProc
( IN p_rollNumber Varchar(18),
IN p_studentType Varchar(3),
OUT p_studentID Varchar(15),
OUT p_oldStudentType Varchar(4) ,
OUT p_oldBranch Varchar(3) ,
OUT p_newStudentType Varchar(4) ,
OUT p_newBranch Varchar(4)
)
BEGIN
IF p_studentType IS NOT NULL
THEN
Select
REGISTRATION_NO,
OLD_STUD_TYPE,
OLD_BRANCH,
NEW_STUD_TYPE,
NEW_BRANCH
into
p_studentID
,p_oldStudentType
,p_oldBranch
,p_newStudentType
,p_newBranch
From
Migrated_Student
Where
OLD_STUDENT_NUM = p_rollNumber
and ACTIVE = 'P';
ELSE
Select
REGISTRATION_NO,
OLD_STUD_TYPE,
OLD_BRANCH,
NEW_STUD_TYPE,
NEW_BRANCH
into
p_studentID
,p_oldStudentType
,p_oldBranch
,p_newStudentType
,p_newBranch
From
Migrated_Student
Where
OLD_STUDENT_NUM = p_rollNumber and
OLD_STUD_TYPE = p_studentType and
ACTIVE = 'P';
END IF;
END