2016-01-27 61 views
1

我有以下URL访问会话状态查询

.../ords/f?p=1575:31:12296330498768::NO::CONTRACTID:2 

正如你可以看到我有CONTRACTID会话状态设置为2

我想存取权限在以下SQLCONTRACTID值:

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会话状态每documentation

在访问上述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 

我试着V('CONTRACTID')NV('CONTRACTID')更换:CONTRACTID,但没有做任何

回答

1

CONTRACTID必须是一个应用程序项目或页面项目。你不能只传递URL中的任何字符串作为标识符,并在查询中使用它。要创建页面项目:

  • 打开所需的页面(页面查询您的例子)
  • 点击+标志在Items部分
  • (如果你是在Component view模式下工作)提供一个名称您的项目
  • 如果你不需要显示在页面上的项目,你可以把它隐藏(Display as - Hidden在项目属性)

要创建应用程序项目,请转至Shared Components - >Application Logic - >Application Items并在其中创建项目。
创建页面项目或应用程序项目后,您可以在URL和报告查询中使用它们的名称。应用程序项目和页面项目之间的主要区别 - 应用程序项目可在整个应用程序,页面项目中访问 - 仅在其页面上可访问。