【问题标题】:Get the stored procedure code from Java [duplicate]从Java获取存储过程代码[重复]
【发布时间】:2018-11-21 19:29:13
【问题描述】:

我们可以使用JDBC从java中获取Oracle SQL中声明的存储过程内容吗?

背景:我有一个存储过程,其中有一个insert。当我添加用于将每条记录插入到executeBatch() 的存储过程时,executeBatch() 的性能不如添加单个insert 语句时的预期。

此外,我不想对代码进行太多更改,也不想尝试其他选项,例如在代码中使用 inserts 并将记录作为列表传递给数组。所以在这种情况下,最可取的选择是找到一种方法来提取 SQL 存储过程中的代码。

【问题讨论】:

  • “另外,我不想对代码进行太多更改,也不想尝试其他选项,例如在代码中使用插入并将记录作为列表传递给数组。”为什么你不想那样做?在“良好实践”中,您创建一个 DB 过程来处理从 web-app 调用的 DML 过程。通常,您为一个记录创建它,但也(如您的情况)大量插入案例。如果您使用 Oracle DB 并且可以访问它 - 避免将业务逻辑放在 Web 应用程序中,在 DB 中实现它 - 更高效且更易于维护。

标签: java sql oracle jdbc


【解决方案1】:

您可以从 ALL_SOURCE 视图获取过程的源代码:

SELECT *
  FROM ALL_SOURCE s
  WHERE s.OWNER = 'WHATEVER' AND
        s.NAME = 'WHATEVER'
  ORDER BY s.LINE;

祝你好运。

【讨论】:

  • 或从...中选择文本以仅获取 source_code。
  • @MT0:更改以反映 Oracle 名称的大写性质。
猜你喜欢
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
  • 2013-12-27
  • 2013-08-01
相关资源
最近更新 更多