我正在尝试完全手动制作一个应用程序,而不使用任何交互式报告或生成的PL / SQL。目前一切正常,但是在搜索栏上我却迷住了,找不到任何在线帮助我。
我有一个经典的报告,称为“浏览职位空缺”和一个“搜索”按钮;我也有“ C1_JOB_TITLE_ITEM”搜索栏和一个名为“搜索”的页面处理。
在此过程中,我有以下代码:
SELECT
JOB_CODE,
JOB_TITLE,
JOB_DESCRIPTION,
SITE_NAME,
EMAIL_ADDRESS,
TELEPHONE_NUMBER,
SALARY,
START_OF_PLACEMENT,
APPLICATION_METHOD,
APPLICATION_CLOSING_DATE
FROM JOB
WHERE upper(job_title) = upper(:C1_JOB_TITLE_ITEM);
我收到此错误:
ORA-06550:第1行,第64列:PLS-00428:此SELECT语句中应有一个INTO子句
所以我创建了以下代码:
DECLARE temp_row char;
BEGIN
SELECT
JOB_CODE,
JOB_TITLE,
JOB_DESCRIPTION,
SITE_NAME,
EMAIL_ADDRESS,
TELEPHONE_NUMBER,
SALARY,
START_OF_PLACEMENT,
APPLICATION_METHOD,
APPLICATION_CLOSING_DATE
INTO temp_row
FROM JOB
WHERE job_title = :C1_JOB_TITLE_ITEM;
END;
我在这里遇到此错误:
ORA-06550:第13行,第16列:PL / SQL:ORA-00947:值不足
在这一点上,我完全不知所措,因此,我们将不胜感激。抱歉,如果我不够详细,这是我第一次写Stack Overflow。
答案 0 :(得分:2)
(编辑是因为有人认为这不是答案。)
您说您有一个分页过程。您不需要任何处理。您应该拥有一个具有以下属性的Region(假设18.x):
Apex将运行查询并基于该查询创建报告。进程用于PL / SQL块,以某种方式执行诸如填充数据或操作数据库的操作。
当您在项目中输入关键字并单击按钮(按钮操作应为Submit Page)时,Apex将在会话状态下用用户的值填充C1_JOB_TITLE_ITEM
,然后在其绑定变量中使用它重新生成页面。
答案 1 :(得分:1)
1)创建一个以该SQL作为源代码的经典报告。
2)在区域源下方的要提交的页面项属性中设置C1_JOB_TITLE_ITEM。
3)创建页面项C1_JOB_TITLE_ITEM,作为您的搜索字段。
4)创建该项目的“更改时的动态操作”,并刷新经典报表区域。刷新的时间取决于您。步骤2确保将您在浏览器中键入的值发送到数据库,以重新运行该查询。
您是否有基于函数的基于上标(job_title)的索引?否则,您可能会遇到性能问题。