のnullを返します。機能ではなく、期待値
SELECT pacjent_usun_PK_ERROR(5) from dual
(PESEL =「5」私のテーブルに存在しない)
この関数は、NULLを返します。
しかし、私は有効な値渡し:
SELECT pacjent_usun_PK_ERROR(1) from dual
を(PESEL = '1' 私のテーブルに存在する)
機能がを返します。ここで
は私の関数である: 私は手動挿入PRZYJECIEIDで、私の関数から私の最後のSELECTをテストCREATE OR REPLACE FUNCTION pacjent_usun_PK_ERROR
(PES IN NUMBER)
RETURN NUMBER
IS
ILE NUMBER;
ZMIENNA NUMBER;
BEGIN
SELECT PACJENTID INTO ZMIENNA FROM PACJENT WHERE PESEL=PES;
SELECT COUNT(PRZYJECIEID) INTO ILE FROM PRZYJECIE_NA_ODDZIAL
WHERE PACJENTID=ZMIENNA and rownum=1;
RETURN ILE;
END;
(PACJENTID = '1111' 私のテーブルに存在しない)
SELECT COUNT(PRZYJECIEID) FROM PRZYJECIE_NA_ODDZIAL WHERE PACJENTID='1111' and rownum=1;
結果は次のとおりです。
とテストウィット時間PACJENTID =「1」(私のテーブルに存在し)
結果は次のとおりです。
私は関数は行がないNULLの代わりに0を返す理由を理解しようとしています。
Oracle SQL Developerを使用しています
適切なタグを付けてください。 MySQLとOracleは構文が異なります。 –
私はそれを得たと思う...(逐次編集を参照)。 – mathguy