関数にSQLクエリがあります
SELECT  DISTINCT (product_id)
      INTO  prod
      FROM  products
     WHERE       mfg_no = 'TEL'             
                AND status = p_status
product_id が null になるか、p_status にデータがない場合があります。この関数のため、値は返されません。
product_id を確認するために nvl,decode および case ステートメントを試しましたが、どれも機能しませんでした。product_id が null または空の場合でも、関数が正常に実行されるようにするにはどうすればよいですか?
次のような EXCEPTION ブロックで値を返そうとしましたが、どちらも役に立ちませんでした。
EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
        prod := 'NA';
編集 1
CREATE OR REPLACE FUNCTION my_function (p_status VARCHAR2)
    RETURN VARCHAR2
AS
    prod     VARCHAR2 (2000);
BEGIN
    prod := NULL;  
    SELECT  DISTINCT (product_id)
      INTO  prod
      FROM  products
     WHERE  mfg_no = 'TEL' AND status = p_status;
    RETURN prod;
EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
        prod := 'N/A';
        DBMS_OUTPUT.put_line ('no data found ' || SQLERRM);
    WHEN OTHERS
    THEN
        DBMS_OUTPUT.put_line ('error ' || SQLERRM);
        prod := 'N/A';
END;