【发布时间】:2011-12-05 10:28:24
【问题描述】:
我正在将各种来源的数据提取到一张表中。在这个新表中,有一个名为 lineno 的字段。该字段值应根据公司代码和批号依次排列。我写了以下程序
CREATE PROCEDURE update_line(company CHAR(4), batch CHAR(8), rcptid CHAR(12));
DEFINE lineno INT;
SELECT Count(*)
INTO lineno
FROM tmp_cb_rcpthdr
WHERE cbrh_company = company
AND cbrh_batchid = batch;
UPDATE tmp_cb_rcpthdr
SET cbrh_lineno = lineno + 1
WHERE cbrh_company = company
AND cbrh_batchid = batch
AND cbrh_rcptid = rcptid;
END PROCEDURE;
将使用以下触发器调用此过程
CREATE TRIGGER tmp_cb_rcpthdr_ins INSERT ON tmp_cb_rcpthdr
REFERENCING NEW AS n
FOR EACH ROW
(
EXECUTE PROCEDURE update_line(n.company, cbrh_batchid, cbrh_rcptid)
);
但是,我收到以下错误
SQL 错误 = -747 表或列匹配中引用的对象 触发语句。
从 oninit.com,我了解到由触发的 SQL 语句引起的错误作用于触发表,在这种情况下是 UPDATE 语句。 所以我的问题是,我该如何解决这个问题?有什么变通或更好的解决方案吗?
【问题讨论】:
标签: stored-procedures triggers informix