如何从具有执行类型作为嵌入式查询的 Control-M 数据库作业运行 SQL Developer 中存在的存储过程
Posted
技术标签:
【中文标题】如何从具有执行类型作为嵌入式查询的 Control-M 数据库作业运行 SQL Developer 中存在的存储过程【英文标题】:How run a stored procedure present in SQL Developer from a Control-M database job with Execution type as embedded query 【发布时间】:2020-07-21 10:30:36 【问题描述】:我是 Control-M 调度的新手,我手头的场景如下:
SQL DEVELOPER 中有一个存储过程,它在表上创建子分区查询。现在我需要安排一个 Control-M 作业,它将这个存储过程直接运行到 controlM 作业参数中提到的数据库和模式中。我能够设置数据库连接部分,并将执行类型作为嵌入式查询,我编写了 SQL 语句:EXEC
Control-M 作业失败,出现 ORA00900:无效 SQL 语句。
注意:该程序没有任何分区。此外,当我在 SQL 开发人员中运行相同的查询时,它会成功运行并给出预期的结果。问题在于从 Control-M 作业执行。
谁能帮忙解决一下。非常感谢!
【问题讨论】:
过程存储在数据库中,而不是存储在 SQL Developer 等桌面工具中。我不知道 Control-M 但我怀疑它提供了exec
命令。如果您有产品的文档,应该很容易确认这一点。等效的 SQL 是 call
,或者如果它支持 PL/SQL 匿名块,则为 begin ... end;
。
什么是control-M?做一个开始 proc(a=>1..);结尾; vs 一个 exec,它是一个 SQLPlus cmd
@thatjeffsmith 这是一个作业调度程序。 bmc.com/it-solutions/control-m.html
【参考方案1】:
@thatjeffsmith Control-M 是市场领先的作业调度解决方案,它存在于分布式(Unix 和 Windows 以及其他一切)版本和大型机(可以在两者之间跳过)。
Control-M 可以运行脚本或命令。您将无法直接从系统命令提示符运行存储过程,但他们对此有解决方案。 Control-M 有许多在 Control-M 代理下运行的模块(代理本地安装在您要执行的东西的盒子上),这些代理有许多不同的种类;一个管理文件传输,一个运行 SAP 作业、Oracle 应用程序、Hadoop 等等。
您需要的是 Control-M for Databases。在您的 Control-M 代理下安装它(现有客户免费),只需 2 分钟即可添加,它适用于所有主要的数据库供应商。运行后,在 Control-M for Databases 模块上设置连接配置文件(数据库名称、ID、密码、端口号,通常的)。
然后(回到您的 Control-M 系统)创建一个 Control-M for Databases 作业。您可以选择存储过程或使用 Control-M 来存储您的 SQL 或其他任何东西。 Control-M 为您提供变量(包括将输出保存为变量)、重新运行选项、对其他作业的依赖性、通知(例如,用于失败或延迟运行)、工作负载平衡、版本控制、yadda-yadda-yadda ...
【讨论】:
【参考方案2】:我能够在 Control-M 中运行执行类型为存储过程的存储过程。早些时候,由于数据库连接问题,我无法做到这一点,当这个问题解决后,我就可以做到了。
谢谢!
【讨论】:
以上是关于如何从具有执行类型作为嵌入式查询的 Control-M 数据库作业运行 SQL Developer 中存在的存储过程的主要内容,如果未能解决你的问题,请参考以下文章
使用聚合查询获取具有总交易计数和交易详细信息的用户列表作为嵌入文档