오라클에 저장 프로 시저를 쓰려고합니다. (요점을 싫어합니다.) 저장된 proc을 실행할 때 너무 많은 행 (예 : 1보다 큼)이지만 텍스트를 통해 데이터를 쿼리 할 때 하나의 행만이 기준과 일치한다는 것을 분명히 알 수 있습니다. 실행하면ORACLE 저장 프로 시저가 너무 많은 행을 반환합니다.
create or replace PROCEDURE GETADDRESSCOORDS ( HOUSE IN VARCHAR2 , STREET IN VARCHAR2 , X OUT NUMBER , Y OUT NUMBER ) AS BEGIN SELECT X_COORD, Y_COORD INTO X,Y FROM MASTER_ADDRESS WHERE HOUSE=HOUSE AND STR_NAME=STREET AND PRE_DIR IS NULL; END GETADDRESSCOORDS;
, 나는이 오류 MSG가 나타납니다
SQL> execute getaddresscoords('1550', 'BEDFORD', :X, :Y) BEGIN getaddresscoords('1550', 'BEDFORD', :X, :Y); END; * ERROR at line 1: ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at "TAXLOTS.GETADDRESSCOORDS", line 9 ORA-06512: at line 1
그래서 내가 너무 많은 행을 얻었다을 ...하지만이 실행할 때 :
SQL> SELECT MAX(rownum) from MASTER_ADDRESS where HOUSE='1550' AND STR_NAME='BEDFORD' AND PRE_DIR IS NULL; MAX(ROWNUM) ----------- 1
을 무엇을 나는 여기에 놓치고 ?