Привет, сообщество стека,
Последние пару дней я застрял с тем, что я изначально думал, было относительно простым обновлением SQR.
Короче говоря, процедура Process-Main выбирает всех сотрудников, где COMPANY = 'ABC', а затем мне нужно вставить запись в таблицы A и TableB, связанные с каждым идентификатором сотрудника.
TableB пуст, поэтому я просто запускаю оператор INSERT для каждого empID, и записи добавляются без проблем.
Однако некоторые empID могут иметь существующие записи в таблице A, и мне нужно проверить это, прежде чем выполнять INSERT в TableA.
Как ни странно, когда я выполняю этот SQR, я получаю следующую ошибку
(SQR 3721) Bad param found on 'BEGIN-SELECT' line;
(SQR 3704) Missing procedure name.
A.EMPLID
Я почти уверен, что это проблема синтаксиса или у меня просто мозги... У кого-нибудь есть какие-либо советы/предложения?
Вот мой псевдокод
!***************************
begin-procedure Process-Main
!***************************
begin-select distinct
J.DEPTID
J.EMPLID
J.EFFDT
do Insert-TableA-Record
do Insert-TableB-Record
FROM PS_JOB J
WHERE J.COMPANY = 'ABC'
end-select
end-procedure
!****************************
begin-procedure Insert-TableA-Record
!****************************
let $found = 'N'
begin-select
A.EMPLID
let $found = 'Y'
FROM TableA A
WHERE A.EMPLID=&J.EMPLID
AND A.PLAN_TYPE='P1234'
end-select
if $found = 'N'
begin-sql ON-ERROR = Abort-Update
INSERT INTO TableA (
EMPLID,
PLAN_TYPE
)
VALUES (
&J.EMPLID,
'P1234'
);
end-sql
end-if
end-procedure
!****************************
begin-procedure Insert-TableB-Record
!****************************
begin-sql ON-ERROR = Abort-Update
!INSERT INTO TableB STMT HERE...
!everything runs fine in this procedure
end-sql
end-procedure