你好棧社區運行時錯誤,SQR程序與BEGIN SELECT語句
我一直停留在過去幾天與我最初的想法是一個相對簡單的SQR更新。
簡而言之,程序進程與主選擇其中COMPANY =「ABC」,然後我需要插入一個記錄與每個相關聯的表A &表B EMPLOYEEID
表B是空的所有僱員,所以我簡單地爲每個empID運行INSERT語句並添加記錄沒有任何問題。
但是,某些empID可能具有TableA中的現有記錄,並且在將INSERT插入表A中之前我需要檢查該記錄。
奇怪的是,當我執行此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將不得不用做插入 - 表A-記錄和存在問題Insert-TableB-Record在列1中。這是否接近實際代碼?程序Insert-TableA-Record中的begin-select語句中的A.EMPLID應該在第1列中。是否有任何方法可以查看部分實際代碼? – cardmagik