来自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>
一个注意事项。此程序包会将错误记录到PS数据库的表中。我已将插入/更新/选择授予:
两个问题:
我觉得奇怪的是这个包可以从SQL Workshop获得,但不是Apex应用程序。
1)现在我确定解析模式被覆盖了,还有什么东西让我错过了。 PS的其他软件包与Apex合作,所以我知道这是可能的。
2)我知道这是在某处抛出Oracle错误。有人可以帮我找到它吗? (可能的磁盘/文件夹/名称)
谢谢,
埃里克。
答案 0 :(得分:1)
要运行查询
grant execute on pkg_owner.package to parsing_schema;
听起来你已经检查了你的基地,但那是基本的补助金。 在SQL Workshop中,您可以检查&#34; Schema&#34;下拉列表与解析模式相同。某些工作空间可能与多个模式相关联。
但是,我不确定这是你的问题。该错误提到授权方案,这是不同的。检查列定义中的Security属性,然后检查该授权返回true / false的内容。
我认为此授权方案正在返回与Powerschool相关的自定义错误。