【问题标题】:Oracle Forms Post-Query FRM-40735 and ORA-01422Oracle Forms 查询后 FRM-40735 和 ORA-01422
【发布时间】:2020-04-09 21:37:57
【问题描述】:
我想显示来自不同表的项目,我正在使用POST-QUERY 触发器
:
SELECT Stock_code
INTO :exchange.stockcode
FROM Exchange_Stock
WHERE Exchange_code = :exchange.Exchange_code;
它提出了FRM-40735 和ORA-01422
但它显示了一些记录(不是全部),
我不知道出了什么问题
【问题讨论】:
标签:
oracle
oracleforms
eventtrigger
ora-01422
【解决方案1】:
很可能POST-QUERY 触发器会在填充了多条记录的基于表的块的字段之后触发。显然Exchange_code 的值在整个表数据中不是唯一的,而SELECT .. INTO .. FROM ... 子句只能带来一条记录。
因此,您可以尝试过滤掉结果,以便为每个参数字段组合(例如 :exchange.Exchange_code 和 :exchange.code_order)获取单行,而不是 WHERE 条件中的仅 :exchange.Exchange_code 字段:
SELECT Stock_code
INTO :exchange.stockcode
FROM Exchange_Stock
WHERE Exchange_code = :exchange.Exchange_code
AND code_order = :exchange.code_order;
重要的是从查询匹配数据块中的每条记录中获取单行。如果尚未提供此条件,您仍然可以向查询添加更多条件。