Oracleにストアドプロシージャを書き込もうとしています(ポイントの横に嫌われています) ストアドプロシージャを実行すると、 (例えば1以上の)行を含むが、テキストを介してデータを照会するときに、この基準に一致する行が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
を私はここで何をしないのです?