我有一个过程,它将所有相关的字段提取到变量中。代码简化如下。
PROCEDURE pr_update(new_id IN NUMBER)
AS
v_a NUMBER;
v_b NUMBER;
v_c NUMBER;
BEGIN
SELECT APPRVD_1, TOT_1, NEW_1
INTO v_a , v_b , v_c
FROM TableName
WHERE TABLE_ID = new_id;
END pr_update;
字符串
如果我从另一个过程调用这个过程,并传入一个new_ID,它将抛出一个错误ORA-01422:exact fetch返回的行数超过了请求的行数,但是如果我把new_id直接放在where子句中,它可以正常工作。
第一个月
任何建议将不胜感激。
1条答案
按热度按时间5rgfhyps1#
没有所有的细节很难说,但这里的一个常见问题是数据类型不匹配。如果“TABLE_ID”是一个varchar2,则执行如下操作
字符串
将被默默地转化为
型
这意味着(例如)值'01'和'001'将匹配并创建您看到的错误。