当前位置: 首页 > 面试题库 >

从Java运行sqlplus脚本的简单方法

丁正阳
2023-03-14
问题内容

我有一个包含sqlplus特定脚本的sql文件:它包含/或; 作为语句终止符,执行存储过程的EXEC等。

我需要从Java(jdbc)执行此脚本,而无需sqlplus。

sql ant task / maven sql插件无法处理不同的终止符或EXEC命令。

您知道不运行sqlplus的任何好方法吗?


问题答案:

我们遇到了同样的问题…简而言之,目前还没有现成的解决方案:如果打开Ant或Maven源代码,您会发现它们正在使用基于regexp的简单脚本拆分器,该脚本拆分器适用于简单脚本,但通常在例如存储过程上失败。

实际上,确实有用于PL / SQL的ANTLR解析器,例如Alexandre
Porcelli的
软管非常接近,但仍不能用作嵌入式解决方案。

我们最终编写了又一个临时拆分器,该拆分器知道一些sqlplus命令,例如/and,EXIT它仍然很丑陋,但适用于我们的大多数脚本。



 类似资料:
  • 我在尝试从Java运行R脚本时遇到了一个问题。我真的在互联网上寻找这个问题的答案,但什么都不管用。 求你帮帮我 这是java代码 以下是当我添加Runtime.getRuntime(). exec("Rcript"rScriptFileName)时抛出的错误消息:

  • 问题内容: 我在尝试使用sqlplus将sql脚本运行到oracle时遇到问题。该脚本仅填充一些虚拟数据: 使用Oracle SQL Developer运行脚本时,脚本运行良好,但是使用sqlplus命令行工具时,将输出以下内容,然后将其挂起: 我正在使用以下命令行运行该工具,该命令在其他脚本中也可以正常运行: 有任何想法吗?谢谢。 问题答案: 您需要在脚本的末尾放置一个,或以(例如重定向的输入代

  • 问题内容: 我正在尝试从Java执行Bash Shell脚本,并且使用这段代码可以正常运行。 上面的代码异步运行良好。但是我想实现的是同步执行代码。我希望Java进程等到脚本执行完成后再执行下一批代码。 总而言之,我希望在批处理文件(“ myscript.sh”)完成执行 之后 执行“打印语句-脚本成功执行”。 谢谢 问题答案: 你要等待进程结束,这是WAITFOR()这样的

  • 问题内容: 我快要解决这个问题了。 下面是代码: 问题答案: 您的代码是正确的,我相信您不会收到异常,如果您使用进行阅读,则不会得到任何东西。 已经说过,现在命令是100%以这种方式执行,这是因为您正在回显某些内容,需要使用来将其读回。 检查以下示例,该示例将成功创建一个名目录并打印您正在回显的内容。为了将其放入日志文件,恐怕您可以使用“>”来完成它,您可能必须使用一些编辑器命令或使用Java创建

  • 这是我第一次在java中尝试python。我试图从我的代码中执行python脚本,如下所示。 但我有以下例外 无法运行程序“python”:CreateProcess error=2,系统找不到指定的文件 我已经安装了python。我不确定为什么找不到该文件。我试着跟随这个链接,但它并没有解决我的问题。 提前谢谢。 编辑1 我尝试了“Viacheslav Vedenin”给出的示例代码,当我执行我

  • 问题内容: 剖析PHP脚本的最简单方法是什么? 我喜欢在上面显示一些内容,这些内容可以显示所有函数调用的转储以及它们花费了多长时间,但我也可以在特定函数周围添加一些内容。 我尝试使用microtime函数进行实验: 但这有时给我负面的结果。另外,在我的代码中撒满代码也很麻烦。 问题答案: 所述PECL APD扩展的使用如下: 之后,使用解析生成的文件。 输出示例: 警告:APD的最新版本为2004