我正在尝试通过 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 开发人员启用了休息服务。
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 网址是 http://localhost:8083/ords/testuser/my_package/getusersnapshot,{}
我在测试时带有正文。这给出了错误 404。但是当我使用没有参数的过程执行包时,它工作正常。我这里有什么问题?