当您在SQL命令区域时,v('APP_ID')在oracle apex中返回什么?

kg7wmglp  于 2023-03-17  发布在  Oracle
关注(0)|答案(2)|浏览(117)

我试图了解当我在SQL命令区域中时v('APP_ID')返回什么。当我从APEX页调用它时,它正确地返回APP_ID。但是,当在SQL命令中时,它返回值4500,这不是我的工作区中的任何app_ID。
select * from apex_applications where application_id = 4500;
此SQL不返回任何内容。
先谢谢你。
在这种情况下,我希望函数返回null。

kyvafyod

kyvafyod1#

函数v('APP_ID')返回会话的应用程序ID值。因此,在您的示例中,它返回SQL命令的应用程序ID,这意味着它是Oracle Apex示例的应用程序ID。Oracle Apex本身也是Oracle Apex应用程序。这就是为什么它有一个应用程序ID,但它是Oracle内部的,因此您无法通过该查询获得任何结果。

6kkfgxo0

6kkfgxo02#

如果您查看apex_applications脚本(相当多的代码,Apex 20.2超过600行),您将看到其

  • FROM子句(www_flow_current_workspace可能是 * 至关重要的 *)
  • WHERE子句,用于过滤我们看到的数据
  • COMMENTS;描述apex_applications的那一条回答了您的问题:

当前工作区数据库用户中定义的应用程序

截至v('APP_ID')

  • 当您从Apex页面调用它时,它返回当前应用程序的ID(这是预期的/显而易见的)
  • 当您从SQL工作室调用它时,它返回4500,这是Apex(应用程序)本身的ID;这是因为SQL工作室是一个“通用”* 实用程序 *,与您创建的任何特定应用程序无关

相关问题