在Apex中,从SQL Workshop调用的包成功但是从Application Builder失败

时间:2017-08-21 19:03:15

标签: oracle-apex

来自Apex newby的问题。 。

背景

我正在使用Oracle Apex为第三方SIS(学生信息系统)PowerSchool生成报告,该报告位于自己的架构PS中。在PS中,我将关键业务逻辑抽象为一个自定义函数的集合 - CKSD_Students。

问题

我有以下简单的Oracle查询。

Select   S.ID                       As Student_ID
       , S.Student_Number           As Student_Number
       , S.LastFirst                As LastFirst
       , ps.cksd_student.get_student_enroll_status(S.Enroll_Status) As Enroll_Status
       , S.Grade_Level              As Grade_Level
       , S.SchoolID                 As SchoolID
       , Sch.Name                   As School_Name
From     Students S
         Inner Join Schools Sch
               On   Sch.School_Number = S.SchoolID

它在SQL Workshop中的Oracle Application Express中保存为"保存的SQL"。

当我打开查询并运行它时,它可以工作,我得到了预期的结果。

注意:" ps.cksd_student"是一个自定义包,已在与第三方应用程序PowerSchool相关联的数据库/模式中创建。

当我使用此查询创建Apex报告作为正文中的SQL查询并按下运行时出现以下错误:

    is_internal_error: true
    apex_error_code: APEX.AUTHORIZATION.ACCESS_DENIED
    component.type: APEX_APPLICATION_AUTHORIZATION
    component.id: 8270293315071117
    component.name: User still logged into PowerSchool
    error_backtrace:

    ----- PL/SQL Call Stack -----
      object      line  object
      handle    number  name
    00007FFBF623C890       642  package body APEX_050000.WWV_FLOW_ERROR
    00007FFBF623C890       710  package body APEX_050000.WWV_FLOW_ERROR
    00007FFBF623C890      1014  package body APEX_050000.WWV_FLOW_ERROR
    00007FFBF7EE0960       793  package body APEX_050000.WWV_FLOW_AUTHORIZATION
    00007FFC1790FE50      4518  package body APEX_050000.WWV_FLOW
    00007FFB9D79BF88       173  procedure APEX_050000.F
    00007FFB8554A498         2  anonymous block

当我删除ps.cksd_student生成的列时,报表运行正常。

在Oracle中,在PS Schema中,我已经将ps.cksd_student执行授予解析模式以及似乎连接到Apex的所有模式,我甚至将执行授予public,我仍然得到相同的错误。< / p>

  • 执行APEX_050000
  • 执行APEX_ADMINISTRATOR_ROLE
  • EXECUTE APEX_LISTENER
  • 执行APEX_PUBLIC_USER
  • 执行APEX_REST_PUBLIC_USER
  • 执行FLOWS_FILES
  • 执行NAVIGATOR_ROLE
  • 执行PSNAVIGATOR
  • 执行PS_APEX(我的解析方案)
  • 执行PS_MGMT
  • EXECUTE PUBLIC

一个注意事项。此程序包会将错误记录到PS数据库的表中。我已将插入/更新/选择授予:

  • APEX_050000
  • APEX_ADMINISTRATOR_ROLE
  • APEX_LISTENER
  • APEX_PUBLIC_USER
  • APEX_REST_PUBLIC_USER
  • PS_APEX(我的解析方案)
  • PS_MGMT

两个问题:

我觉得奇怪的是这个包可以从SQL Workshop获得,但不是Apex应用程序。

1)现在我确定解析模式被覆盖了,还有什么东西让我错过了。 PS的其他软件包与Apex合作,所以我知道这是可能的。

2)我知道这是在某处抛出Oracle错误。有人可以帮我找到它吗? (可能的磁盘/文件夹/名称)

谢谢,

埃里克。

1 个答案:

答案 0 :(得分:1)

要运行查询

grant execute on pkg_owner.package to parsing_schema;

听起来你已经检查了你的基地,但那是基本的补助金。 在SQL Workshop中,您可以检查&#34; Schema&#34;下拉列表与解析模式相同。某些工作空间可能与多个模式相关联。

但是,我不确定这是你的问题。该错误提到授权方案,这是不同的。检查列定义中的Security属性,然后检查该授权返回true / false的内容。

认为此授权方案正在返回与Powerschool相关的自定义错误。