私はpl sql
の初心者です。dbからデータを読み込んで数値を返す関数を作成しようとしましたが、エラーORA-00900: invalid SQL statement
が生成されます。pl SQLに関数を書き込もうとしましたが、エラーが発生します。ORA-00900:SQL文が正しくありません。
FUNCTION get_cbk_values ( TC_CODE IN NUMBER,
MERCHANT_DOM IN VARCHAR2,
MERCHANT_GROUP IN VARCHAR2,
MCC IN VARCHAR2,
COUNTRY IN VARCHAR2,
RATE OUT NUMBER,
FIX OUT NUMBER)
RETURN NUMBER IS
Response NUMBER:=1;
CURSOR cur_cbk_param IS SELECT CBA_RATE, CBA_FIX
FROM cbk_prog_assign_rule WHERE
CBA_TCO = TC_CODE
AND CBA_DOM_CODE = MERCHANT_DOM
AND CBA_BMG_CODE = MERCHANT_GROUP
AND CBA_MCC_CODE = MCC
AND CBA_MER_COUN_CODE = COUNTRY;
BEGIN
LOOP
FETCH cur_cbk_param into RATE, FIX;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
Response := 0;
Return(Response);
END;
まず、 'FUNCTION'だけでなく、' CREATE OR REPLACE FUNCTION'で始める必要があります。次に、ループして結果を取得する前にカーソルを開く必要があります。第3に、ループ 'いつcur_cbk_param%NOTFOUND'を'終了 'する必要があります。第4に、このようなカーソルループは 'NO_DATA_FOUND'例外をスローしません。第5に、例外がなければ、関数は値を 'RETURN 'しません。すべての状況で値を返す必要があります。 –
起こっていることを効果的に診断するには、テーブルcbk_pro_assing_ruleを作成するための指示を提供する必要があります。いくつかのデータ例が役立ちます。 –
[Oracle ERROR:ORA-00900:無効なSQL文]の重複している可能性があります(https://stackoverflow.com/questions/35946606/oracle-error-ora-00900-invalid-sql-statement) –