Привет Stack сообщества,процедура SQR с ошибкой времени выполнения на оператора BEGIN-SELECT заявление
я застрял в течение последних нескольких дней с тем, что я изначально думал, что было относительно простое обновление SQR.
В двух словах, процедура Процесс-Main выбирает всех сотрудников, где COMPANY = «ABC», а затем мне нужно вставить запись в TableA & TableB, связанный с каждым EmployeeID
TableB пусто, так что я просто запуская инструкцию INSERT для каждого empID, и записи добавляются без каких-либо проблем.
Однако некоторые empID могут иметь существующие записи в TableA, и мне нужно проверить это до того, как вставить 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
Вы говорите, что это псевдо-код - если бы реальный код, SQR будет иметь проблемы с сделай Insert-TABLEA-Record и do Insert-TableB-Record находится в столбце 1. Является ли это близким к реальному коду? A.EMPLID в инструкции начала-выбора в процедуре Insert-TableA-Record должен быть в столбце 1. Есть ли способ увидеть части реального кода? – cardmagik