【问题标题】:How to compile a Package using a psql command script如何使用 psql 命令脚本编译包
【发布时间】:2013-07-12 08:58:24
【问题描述】:

我们正在创建一个包装脚本(该脚本将用于设置一个数据库,即创建模式、创建表、创建包等),它将在其中调用多个脚本。这就是我们如何在包装脚本中创建用于创建包的条目。此 pkg 包含多个过程。

\i RPT_glossary_pop_pkg.sql

以下是创建的跟踪文件中的输出:-

QUERY
--------------------------------------------------------------------------------
CREATE OR REPLACE PACKAGE grs_rpt.grs_rpt_glossary_country_iou_pop_pkg 
IS   
PROCEDURE grs_rpt_glossary_pop_prc(); 
--------------------------------------------------------------------------------

仅供参考。 PKG 规范定义是:-


-- Package: grs_rpt.grs_rpt_glossary_country_iou_pop_pkg

-- DROP PACKAGE grs_rpt.grs_rpt_glossary_country_iou_pop_pkg;

CREATE OR REPLACE PACKAGE grs_rpt.grs_rpt_glossary_country_iou_pop_pkg
IS

PROCEDURE grs_rpt_glossary_pop_prc();
PROCEDURE grs_rpt_user_country_pop_prc();
PROCEDURE grs_rpt_user_iou_pop_prc();

END grs_rpt_glossary_country_iou_pop_pkg;

是否有通过此类包装脚本编译包的特定方法?

请提出建议。

【问题讨论】:

  • 我们不应该猜测您使用的是哪种 RDBMS...
  • 你是什么意思?请把它简单化 anusha
  • 请说明这适用于哪个 RDBMS(数据库系统)和版本。添加标签 - 在您的问题下单击 edit。我会从你最近失败的尝试中猜到 PostgreSQL,但 Postgres 的 SQL 方言中没有 CREATE PACKAGE
  • 我们使用的是 Postgres 9.1 版本。 9.1 版本确实具有创建 PACKAGE 功能。使用 pgadmin 时,我们能够成功编译和运行包。唯一的问题是通过 psql 脚本编译。
  • 不,Postgres 没有CREATE PACKAGE 命令(请参阅可用的 SQL 命令列表here)。您是否有机会使用 EnterpriseDB 中的Postgres Plus Advanced Server

标签: database postgresql postgresql-9.1


【解决方案1】:

PostgreSQL 不支持包(老实说,我希望它支持)。有两件事比较接近。

首先,您可以将您的程序放在一个模式中以便于管理。这类似于包,只是名称空间更短。

第二个是您可以在 PostgreSQL 扩展中打包过程。这是一个相当广泛的话题,你能做的最好的事情就是开始阅读documentation。这是一个复杂的话题,所以请在开始之前慢慢仔细地阅读文档一两次。

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 2020-04-15
    • 2010-10-27
    • 2017-12-16
    • 2016-11-05
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多