首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Oracle APEX创建APEX服务

无法从Oracle APEX创建APEX服务
EN

Stack Overflow用户
提问于 2021-03-08 21:11:13
回答 1查看 163关注 0票数 0

我是Oracle APEX的新手,我正在尝试从Oracle APEX 20.2创建REST数据web服务,而创建web服务的配置设置如下:

enter image description here

enter image description here

因此,对于这个问题,我正在尝试执行APEX ACL脚本,但它显示以下错误,

代码语言:javascript
复制
DECLARE
  ACL_PATH  VARCHAR2(4000);
    ACL_ID    RAW(16);
  BEGIN
    -- Look for the ACL currently assigned to '*' and give APEX_040200
    -- the "connect" privilege if APEX_040200 does not have the privilege yet.

 SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- Before checking the privilege, ensure that the ACL is valid
  -- (for example, does not contain stale references to dropped users).
  -- If it does, the following exception will be raised:
  --
  -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_040200'
  -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
  --
  SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
  FROM XDB.XDB$ACL A, PATH_VIEW P
  WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
     EQUALS_PATH(P.RES, ACL_PATH) = 1;

 DBMS_XDBZ.ValidateACL(ACL_ID);
  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200', 
 'connect') IS NULL THEN 
  DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 
 'APEX_040200', TRUE, 'connect'); 
 END IF;

  EXCEPTION
  -- When no ACL has been assigned to '*'.
   WHEN NO_DATA_FOUND THEN
   DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
  'ACL that lets power users to connect to everywhere',
  'APEX_040200', TRUE, 'connect');
   DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
 END;
/
 COMMIT;

错误:(我在执行上面的脚本时面对)

代码语言:javascript
复制
ORA-06550: line 8, column 33: PL/SQL: ORA-00942: table or view does not exist ORA-06512: at         "SYS.WWV_DBMS_SQL_APEX_200200", line 670 ORA-06550: line 8, column 3: PL/SQL: SQL Statement ignored    ORA-06550: line 24, column 7: PLS-00201: identifier 'DBMS_NETWORK_ACL_ADMIN' must be declared ORA-06550: line 24, column 4: PL/SQL: Statement ignored ORA-06550: line 33, column 3: PLS-00201: identifier 'DBMS_NETWORK_ACL_ADMIN' must be declared ORA-06550: line 33, column 3: PL/SQL: Statement ignored ORA-06550: line 36, column 3: PLS-00201: identifier 'DBMS_NETWORK_ACL_ADMIN' must be declared ORA-06550: line 36, column 3: PL/SQL: Statement ignored ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658 ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_200200", line 656 ORA-06512: at "APEX_200200.WWV_FLOW_DYNAMIC_EXEC", line 1768

所以当我检查apex论坛时,基本上我们需要connect特权来创建web服务,所以我的问题是如何在使用apex.oracle.com时获得connect特权,我正在使用oracle APEX的测试模式,对于我请求获得connect特权的人,谁对此负责数据库管理员,或者如何解决这个问题。

先谢谢你,约克斯

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 23:00:44

如果您想公开restful服务,则不需要配置ACL。从数据库内部调用invoke restful服务调用,例如从pl/sql连接,需要ACL。通常这些脚本是由DBA运行的,我怀疑您是否有权限运行它们。

开始使用restful服务的最佳位置是安装示例服务并研究示例模块。您只需在浏览器中使用GET处理程序复制模板的url,即可查看结果。从那时起,开始开发你自己的。顺便说一句,ACL的脚本使用了错误的顶层用户。APEX_040200是顶点4.2的顶点模式。这是一个相当老的版本。apex.oracle.com的最新版本目前是20.2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66530486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档