我如何知道我的数据库中是不是安装了 APEX_JSON?

Posted

技术标签:

【中文标题】我如何知道我的数据库中是不是安装了 APEX_JSON?【英文标题】:How can I know if APEX_JSON is installed on my database?我如何知道我的数据库中是否安装了 APEX_JSON? 【发布时间】:2018-12-12 15:07:47 【问题描述】:

我想在 Oracle 数据库中使用 json 数据,所以我尝试了 apex_json 包。

我尝试了来自 Oracle 的 this example:

DECLARE
  s varchar2(32767) := ' "a": 1, "b": ["hello", "world"]';
BEGIN
  apex_json.parse(s);
  sys.dbms_output.put_line('a is '||apex_json.get_varchar2(p_path => 'a'));
END;

但我收到此错误:

必须声明 APEX_JSON.parse。

如何验证APEX_JSON 是否安装在我的db_server 上? 我需要做些什么来激活它吗?

【问题讨论】:

请检查this,您可能使用的是较旧的 APEX 版本。另外,您的 Oracle 数据库版本是什么?在 12c+ 中还有其他函数,例如 JSON_VALUE,用于解析/提取 JSON 元素 版本为 12.1.0.1.0 【参考方案1】:

您应该考虑将 Oracle 升级到 12.1.0.2 或更高版本,其中JSON_VALUE 可用。

SET SERVEROUTPUT ON
DECLARE
  s varchar2(32767) := ' "a": 1, "b": ["hello", "world"]';
  l_a INT;
BEGIN
  l_a := json_value(s,'$.a');
  dbms_output.put_line('a is '||l_a);
END;
/

a is 1


PL/SQL procedure successfully completed.

【讨论】:

不幸的是,我不希望更新服务器。当您被旧版本卡住时,没有其他选择吗? 至少有一种选择;它被称为“DIY”(自己动手,手动)。【参考方案2】:

    以 sysdba 身份登录

    执行下面的脚本:

    select comp_name, version, status from dba_registry where comp_id='APEX';

    它显示了所有细节。

【讨论】:

以上是关于我如何知道我的数据库中是不是安装了 APEX_JSON?的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道python是不是安装了任何exe文件

如何使用 corona sdk 检查我的应用程序之一是不是安装在 IOS 设备中

如何根据升级代码检测是不是安装了应用程序

我如何知道用户是不是以相同的 ID 登录了其他设备,我在我的应用程序中使用了 XMPP

如何知道是不是在表格行引导程序中单击了按钮

如果未安装访问权限,我的程序是不是仍可运行