【问题标题】:How to handle Oracle SQLcl syntax errors?如何处理 Oracle SQLcl 语法错误?
【发布时间】:2022-01-09 04:28:28
【问题描述】:

我将 Jenkins 用于使用 Oracle SQLcl 的 CI/CD Oracle PL/SQL 脚本,所以我想捕获 Jenkins Pipeline 的语法错误,例如:

SQL> seelect * from emp;

Error que empieza en la línea: 1 del comando :
seelect * from emp
Informe de error -
Comando desconocido

当检测到语法错误时,如何使用 sh/bash 错误代码结束与数据库的连接?

注意:我使用 WHENEVER SQLERROR EXIT FAILURE 来处理 ORA-XXX 错误,但我无法捕获语法错误。

谢谢

【问题讨论】:

  • 语法错误基本上是解释器我放弃了,我不知道你想要什么。您无法捕捉到它们,因为口译员不知道这样做。以防万一:您拼错了 Select,只有 1 个 E
  • 所以如果我有一个巨大的 PL / SQL 脚本并且它有语法错误,有没有办法让连接以错误代码终止?还是只是数据库不运行脚本?

标签: database bash oracle sqlcl


【解决方案1】:

我以前在詹金斯管道中使用过这个:

 stage('Check Logs') {
    steps {
      script {
        if (manager.logContains('.*ORA-.*')) {
          error("Build failed due to ORA Errors")
        }
      }

    }
  }

【讨论】:

  • 不幸的是,正如 OP 所提到的,语法错误没有 ORA 编号。
  • 然后查找语法错误的语法,代码块的重点不是它只查找 ORA,而是它可用于查找任何字符串模式并使管道失败。
猜你喜欢
  • 2021-07-17
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
相关资源
最近更新 更多