パッケージの 'body'セクションでpl/sqlの関数をコンパイルしようとしています。PL/SQL関数の戻り値取得エラーORA-00905キーワードがありません
FUNCTION chkMissingData RETURN NUMBER
IS
BEGIN
UPDATE ERRORS
SET ERRORDESC =
CASE
WHEN ERRVAL IS NULL THEN 'No data'
ELSE 'OK'
RETURN 0; -- ORA-00905 missing keyword
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
dbms_output.put_line('INSERT: Constraint violated ' || ERR_NUM || ', Msg:' || ERR_MSG);
RETURN ERR_NUM;
WHEN OTHERS THEN
dbms_output.put_line('Error ' || ERR_NUM || ', Msg:' || ERR_MSG);
RETURN ERR_NUM;
END chkMissingData;
私は同様の問題に他の答えをチェックしましたが、私は、私は「何を見ていない:意図は成功したテーブルの列を更新するか、エラーに関連した数を返す時にどちらかの数値を返すことです構文的に見当たらない。
私はあなたがSQLCODEとSQLERRM
を意味すると思います(そして、私はERRVALは、あなたのテーブルのエラーの列であることを推測しています) ;彼は**何が欠けていたのか分からなかった。 SQL Developerはあなたにそれを伝えません*! {:-) – mathguy
PL/SQL Developerでは、フォーマッタは 'update errors'のすべてを' else 'OK' return 0; 'に1行で置きます。少なくとも、セミコロンがないことについての手がかりを与えます。プラスOPのフォーマットは間違っています:( –