0
(1) 값을 Employee 테이블에 삽입하고 (2) 새 직원의 부서 번호를 가져와 부서가 작동하는 모든 프로젝트에 대해 Project 테이블을 스캔하는 MySQL 저장 프로 시저를 작성하려고합니다. on 및 (3)은 직원의 SSN이있는 프로젝트를 Works_On 테이블에 삽입합니다.커서가있는 MySQL 저장 프로 시저
커서를 사용하여이 작업을 시도하고 있지만 알아낼 수없는 구문 오류가 계속 발생합니다. 현재 오류는 커서를 선언하는 시점이지만 커서를 수정하는 방법을 모릅니다. 나는 꽤 많은 것들을 시도했고 누군가가 실수를 볼 수 있기를 바라고 있습니다.
Use Company
DELIMITER //
Create Procedure SP_Insert_NewEmployee
(
IN fname varchar(30),
IN minit char(1),
IN lname varchar(30),
IN ssn char(9),
IN bdate date,
IN address varchar(50),
IN sex char(1),
IN salary decimal(10,1),
IN super_ssn char(9),
IN dno int
)
Begin
Declare projectNumber Integer;
Declare myCursor2 = CURSOR FOR
SELECT Pnumber
FROM PROJECT
Where Dnum = @dno;
#Insert into Employee
Insert into EMPLOYEE
(
Fname,
Minit ,
Lname ,
Ssn ,
Bdate ,
Address ,
Sex,
Salary ,
Super_ssn,
Dno
)
Values
(
$fname ,
$minit ,
$lname,
$ssn ,
$bdate ,
$address ,
$sex ,
$salary ,
$super_ssn ,
$dno
);
END
#Find projects by new employee's dept
OPEN myCursor2;
FETCH NEXT
FROM myCursor2
INTO
projectNumber
WHILE @@FETCH_STATUS = 0
BEGIN
Insert Into WORKS_ON
Values
(
ssn,
projectNumber,
0
)
FETCH NEXT
FROM myCursor2
INTO
projectNumber
END
CLOSE myCursor2;
DEALLOCATE myCursor2;
END
END
//
DELIMITER ;
오류 코드는 근처에 – cisstudent123
에 대한 커서 근처에 있습니다. DECELARE cur_saving_acc CURSOR FOR '로 커서를 선언해야 할 때가 아니라 답을 추가하는 것이 더 낫습니다. 다른 문제가 있으면 코드가 엉망입니다. 존재하지 않는다 – Susang
그게 첫 번째 문제는 .... 나는 MySQL과 SQL Server 커서 구문을 혼합. 감사! – cisstudent123