我有以下网址
.../ords/f?p=1575:31:12296330498768::NO::CONTRACTID:2
正如您所看到的,我已将会话状态CONTRACTID
设置为2
。
我想在以下CONTRACTID
中访问SQL
的值:
SELECT
CON_CONTRACT.CONTRACTDATUM AS CONTRACTDATUM,
CON_CONTRACT.BEGINDATUM AS BEGINDATUM,
CON_CONTRACT.EINDDATUM AS EINDDATUM,
CON_KLANT.NAAM AS KLANT,
CON_VERKOPER.NAAM AS VERKOPER
FROM CON_CONTRACT, CON_VERKOPER, CON_KLANT
WHERE
CON_VERKOPER.VERKOPERID = CON_CONTRACT.VERKOPERID AND
CON_KLANT.KLANTID = CON_CONTRACT.KLANTID AND
CON_CONTRACT.CONTRACTID = :CONTRACTID
使用:CONTRACTID
引用会话状态
使用上述SQL
访问报告时出现以下错误
ERR-1002 Unable to find item ID for item "CONTRACTID" in application "1575".
Unexpected error, unable to find item name at application or page level.
以下Technical Info
is_internal_error: true
apex_error_code: WWV_FLOW.FIND_ITEM_ID_ERR
error_backtrace:
----- PL/SQL Call Stack -----
object line object
handle number name
0x148b83330 556 package body APEX_040200.WWV_FLOW_ERROR
0x148b83330 607 package body APEX_040200.WWV_FLOW_ERROR
0x148b83330 911 package body APEX_040200.WWV_FLOW_ERROR
0x14b2992c0 2607 package body APEX_040200.WWV_FLOW_META_DATA
0x14c01ff10 3334 package body APEX_040200.WWV_FLOW
0x14c01ff10 4860 package body APEX_040200.WWV_FLOW
0x14c0d60c8 249 procedure APEX_040200.F
0xa04c0228 2 anonymous block
我已尝试将:CONTRACTID
替换为V('CONTRACTID')
和NV('CONTRACTID')
,但这并没有做任何事情
答案 0 :(得分:1)
CONTRACTID
必须是应用项目或页面项目。您不能只将URL中的任何字符串作为标识符传递,并在查询中使用它。要创建页面项目:
Component view
部分中的 + 符号(如果您使用的是Items
模式)Display as
- Hidden
)要创建应用项目,请转到Shared Components
- > Application Logic
- > Application Items
并在那里创建一个项目
创建页面项或应用程序项后,您可以在URL和报表查询中使用它们的名称。应用程序项和页面项之间的主要区别 - 应用程序项可以在整个应用程序,页面项中访问 - 仅在其页面上。