1

Oracle 12c 12.1.0.2、SQL 開発者 4.1.3.20

オンライン チュートリアルに従って ORDS をインストールし (APEX なし)、Auto Enablement 機能が有効な (emp) テーブルへの POST を含めて正常に動作するため、環境は問題ないようです。しかし、POST で PL/SQL サービスを定義しようとすると、どこにも到達できないようです。サービス定義は次のとおりです。

-- ORDS has been started in Standalone mode in SQL developer here

CREATE OR REPLACE PROCEDURE test_proc IS
BEGIN
    INSERT INTO emp (empno, ename) VALUES (10, 'TEST');
END test_proc;
/

BEGIN
   ORDS.DEFINE_SERVICE(
      p_module_name => 'test' ,
      p_base_path   => 'test/',
      p_pattern     => 'simple_insert/',
      p_method      => 'POST',
      p_source_type => ords.source_type_plsql,
      p_source => 'BEGIN
   hr.test_proc;
END;');
COMMIT;
END;
/

-- At this point the service is defined and running, testing with Postman yields "400 Bad Request"

GRANT EXECUTE ON hr.test_proc TO APEX_PUBLIC_USER; -- Despite being decoupled from APEX this     username still remains in ORDS 3.0.4, appears in .\ords\conf\apex.xml

-- Same error as before, having the priv makes no difference

郵便配達員のエラー メッセージ:

400 Bad Request
mapped request using: /hr/* to: ORDS:apex_pu.HR
BadRequestException [statusCode=400, reasons=[Expected one of: <<{,[>> but got: <>]]
4

1 に答える 1

7

私はこれの専門家ではありませんが、この問題に遭遇しました。私にとっての解決策は、リクエスト本文に何かを渡すことでした(ルーチンがそれを使用していなくても)。

これでもうまくいきました:

{}

メソッドを使用しようとした場合GET、何も渡す必要はありませんが、POST必要です。POST(そして、私と同じように使用する必要があると思います)。

幸運を

于 2016-10-20T21:37:36.063 に答える