【问题标题】:How to create package alias in h2如何在 h2 中创建包别名
【发布时间】:2020-03-09 04:08:57
【问题描述】:

我在 java 中使用 h2 作为内存数据库编写测试用例。 我需要创建一个包,里面有一个程序。

我可以在 h2 中使用用户定义的函数创建一个过程,我在其中创建了一个 java 类,并在其中编写了要从表中删除的代码。

现在,我的代码调用了这个: PKG_ORCHESTRATOR.P_DEL_CONTROL_ORCHESTRATOR

我已经为:P_DEL_CONTROL_ORCHESTRATOR 编写了用户定义函数

但由于 PKG_ORCHESTRATOR 未定义,我收到错误。

谁能帮帮我。

如果我需要提供更多详细信息,请告诉我。

【问题讨论】:

    标签: java package h2 procedure


    【解决方案1】:

    H2 没有包,但您可以创建一个架构 PKG_ORCHESTRATOR 并在其中定义您的别名。

    CREATE SCHEMA PKG_ORCHESTRATOR;
    CREATE ALIAS PKG_ORCHESTRATOR.P_DEL_CONTROL_ORCHESTRATOR FOR "full.class.Name.methodName";
    CALL PKG_ORCHESTRATOR.P_DEL_CONTROL_ORCHESTRATOR(arguments);
    

    如果你的过程没有参数,你必须在它的名字后面写()来调用它,否则解析器将无法识别它。

    【讨论】:

    • 包 PKG_ORCHESTRATOR 已经在另一个模式 (VR_OWNER) 中。我们该怎么做?
    • 再一次,在 H2 中没有包这样的东西(在 SQL 标准中也是如此)。这是 Oracle 特有的功能。你不能用 H2 创建一个包,它不能放在任何地方。如果您需要使用 PKG_ORCHESTRATOR.P_DEL_CONTROL_ORCHESTRATOR(arguments) 之类的东西来调用例程,只需按照我的回答中所述创建一个假模式 PKG_ORCHESTRATOR 并使用它而不是包将您的例程 P_DEL_CONTROL_ORCHESTRATOR 放入其中。
    猜你喜欢
    • 2011-06-24
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2010-09-25
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多