Oracle ORDS 経由で Oracle パッケージ プロシージャを公開しようとしていますが、404 エラーが発生します。
私のパッケージ
create or replace PACKAGE MY_PACKAGE AS -- define the package spec
TYPE userChanges IS RECORD
(
id number(32,0),
partner_id varchar2(256 byte),
application_user varchar2(256 byte),
application_name varchar2(256 byte),
transaction_start timestamp(6) with local time zone,
transaction_end timestamp(6) with local time zone ,
service_id varchar2(256 byte),
exec_time number(32,0),
error_code varchar2(256 byte),
operation varchar2(256 byte),
type varchar2(512 byte),
name varchar2(256 byte),
value varchar2(4000 byte)
);
TYPE userTable IS TABLE OF userChanges
INDEX BY BINARY_INTEGER;
PROCEDURE GetUserSnapShot(P_START_TIME in timestamp,
P_END_TIME in timestamp,
P_MAX_ROWS in int,
myTable in out userTable);
END MY_PACKAGE;
パッケージ本体
create or replace PACKAGE BODY MY_PACKAGE AS -- define the package body
PROCEDURE getusersnapshot(P_START_TIME in timestamp,
P_END_TIME in timestamp,
P_MAX_ROWS in int,
myTable in out userTable)
AS
rec userChanges;
BEGIN
rec.id := 1;
rec.partner_id := 'test';
rec.application_user := 'ABCDEF';
rec.application_name := 'ddd';
rec.transaction_start := SYSDATE;
rec.transaction_end := SYSDATE;
rec.service_id := 'ddd';
rec.exec_time := 2;
rec.error_code := 'dddd';
rec.operation := 'ddd';
rec.type := 'ddd';
rec.name := 'ddd';
rec.value := 'ddd';
myTable(1) := rec;
END;
END MY_PACKAGE;
このパッケージは、次の SQL を実行する SQL 開発者を介して REST サービスを有効にしました。
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
ORDS.ENABLE_OBJECT(p_enabled => TRUE,
p_schema => 'TESTUSER',
p_object => 'MY_PACKAGE',
p_object_type => 'PACKAGE',
p_object_alias => 'my_package',
p_auto_rest_auth => FALSE);
commit;
END;
これは正常に実行されます。
POST の私の URL は http://localhost:8083/ords/testuser/my_package/getusersnapshot で、本文{}
はテスト中です。これによりエラー404が発生します。ただし、パラメーターなしのプロシージャでパッケージを実行すると、正常に動作します。ここで私が抱えている問題は何ですか?