我有一个具有动态操作(更改时)的页面项目。 这有效(其他进程会触发)。 我添加了一个操作来调用包中的过程来获取员工信息。 当我尝试验证时,APEX 中的调用抛出错误“ORA-06550:第 11 行,第 19 列:PLS-00302:必须声明组件“GET_EMP_INFO””。
我可以直接执行包中的过程(在Toad中),并且得到预期的输出。所以我不认为过程是问题所在。
这是 APEX 动态操作调用(执行服务器端代码 > PL/SQL)。 您能说出导致错误的原因吗?
DECLARE
l_job_code varchar(200);
l_job_title varchar(200);
l_position_number varchar(200);
l_position_suffix varchar(200);
l_org_number varchar(200);
l_org_name varchar(200);
BEGIN
--call procedure in package and directly assign output to page items (and some vars)
hri.pkg_apex_eab.get_emp_info (
in_ee => :P2_EE,
out_emp_employee_number => :P2_EE_EMPLOYEE_NUMBER,
out_emp_full_name => :P2_EE_FULL_NAME,
out_emp_email_address => :P2_EE_EMAIL_ADDRESS,
out_emp_user_name => :P2_EE_USER_NAME,
out_emp_job_classification_code => l_job_code,
out_emp_job_classification_title => l_job_title,
out_emp_position_number => l_position_number,
out_emp_position_suffix => l_position_suffix,
out_emp_working_title => l_position_suffix,
out_emp_org_number => l_org_number,
out_emp_org_name => l_org_name,
out_supv_employee_number => :P2_EE_SUPV_EID,
out_supv_full_name => :P2_EE_SUPV_FULLNAME,
out_supv_user_name => :P2_EE_SUPV_USERNAME,
out_supv_email_address => :P2_EE_SUPV_EMAIL);
--combine some return vars and assign to page items
:P2_EE_JOB := l_job_code || '.' || l_job_title;
:P2_EE_POSITION := l_position_number || '.' || l_position_suffix || '.' || l_working_title;
:P2_EE_ORG := '[' || l_org_number || '] ' || l_org_name;
--set session values
apex_util.set_session_state('P2_EE_EMPLOYEE_NUMBER', out_emp_employee_number);
apex_util.set_session_state('P2_EE_FULL_NAME', out_emp_full_name);
apex_util.set_session_state('P2_EE_EMAIL_ADDRESS', out_emp_email_address);
apex_util.set_session_state('P2_EE_USER_NAME', out_emp_user_name);
apex_util.set_session_state('P2_EE_JOB', l_job_code || '.' || l_job_title);
apex_util.set_session_state('P2_EE_POSITION', l_position_number || '.' || l_position_suffix || '.' || l_working_title);
apex_util.set_session_state('P2_EE_ORG', '[' || l_org_number || '] ' || l_org_name);
apex_util.set_session_state('P2_EE_SUPV_FULLNAME', out_supv_full_name);
--apex_util.set_session_state('P2_EE_SUPV_EID', '[' || l_supv_eid || '] ' || l_supv_eid);
apex_util.set_session_state('P2_EE_SUPV_EMAIL', out_supv_email_address);
apex_util.set_session_state('P2_EE_SUPV_USERNAME', out_supv_user_name);
END;
我尝试从 APEX 动态操作调用 hri.pkg_apex_eab.get_emp_info 并期望返回多个数据点(分配到其他页面项)。 相反,我收到错误“ORA-06550:第 11 行,第 19 列:PLS-00302:必须声明组件 'GET_EMP_INFO'”。
这就是你的称呼:
hri.pkg_apex_eab.get_emp_info
这意味着:
get_emp_info
pkg_apex_eab
套餐的一部分...hri
问题/建议:
hri
用户一起使用?如果没有,请要求 Apex 管理员执行此操作hri
,您是否将 execute
的 hri
权限授予当前用户?
请注意,这不是 Apex 用户,而是您在连接到 Apex 时输入的用户(您必须指定工作区名称、用户名和密码 - 这是 Apex 的情况)。我说的是