【发布时间】:2011-12-29 03:57:09
【问题描述】:
我正在尝试在 Oracle 中编写一个存储过程(我开始讨厌它(题外话)) 执行存储过程时,我被告知检索了太多行(例如超过 1 行),但是当通过文本查询数据时,它清楚地告诉我只有一行符合此条件。
创建或替换 程序获取地址评分 ( VARCHAR2 中的房子 , VARCHAR2 中的街道 , X 输出号码 , 你的号码 ) 作为 开始 从 MASTER_ADDRESS 中选择 X_COORD、Y_COORD 到 X、Y 其中 HOUSE=HOUSE 且 STR_NAME=STREET 且 PRE_DIR 为 NULL; 结束GETADDRESSCOORDS;运行时,我收到此错误消息:
SQL> 执行 getaddresscoords('1550', 'BEDFORD', :X, :Y) BEGIN getaddresscoords('1550', 'BEDFORD', :X, :Y);结尾; * 第 1 行的错误: ORA-01422: 精确提取返回的行数多于请求的行数 ORA-06512:在“TAXLOTS.GETADDRESSCOORDS”,第 9 行 ORA-06512: 在第 1 行所以我得到了太多的行......但是当我执行这个时:
SQL> SELECT MAX(rownum) from MASTER_ADDRESS where HOUSE='1550' AND STR_NAME='BEDFORD' AND PRE_DIR 为空; 最大(行号) ------------ 1我在这里错过了什么?
【问题讨论】: