验证文件是不是为 SQL 或验证其语法

Posted

技术标签:

【中文标题】验证文件是不是为 SQL 或验证其语法【英文标题】:Verify if a file is SQL or verify its syntax验证文件是否为 SQL 或验证其语法 【发布时间】:2022-01-06 15:33:12 【问题描述】:

我正在使用 Oracle 和 Jenkins 实施 DevOps,我使用 Gitlab 存储库来存储脚本 .sql(PL/SQL 和 ORDS),我想验证文件是否已上传并且触发管道确实是 SQL 文件并验证其如果它是一个错误的文件,避免执行所有管道的语法。是否存在一些执行此操作的 Oracle 命令或脚本? (我发现 EXPLAIN PLAN FOR 但它不适用于 PL/SQL 块和 ORDS)

谢谢

【问题讨论】:

对于你的 ORDS 东西......你到底有什么? ORDS PL/SQL API 调用?还有什么? 我有 PL/SQL 脚本来修改架构和 ORDS 来创建 API 调用,这两种类型都是 .sql 文件,当数据库用户修改其文件时,将执行 Jenkins 管道并应用此 sql 文件在数据库中,我只想验证上传文件是否为 SQL 文件,而不是其他脚本类型(python、rb 等)。 所以 ORDS 对象/文件也只是 sql 脚本 是的先生,顺便说一句,我喜欢你的博客,最近我经常访问它! 【参考方案1】:
script
   var input = 'select * from emp';
   var ParsedSql = Java.type('oracle.dbtools.parser.plsql.ParsedSql');
   var parsed = new ParsedSql(input);
   var root = parsed.parse();
   root.printTree();
/

其他有用的 ParsedSql 方法:

getInput() getSrc() getRoot() getSyntaxError()

【讨论】:

以上是关于验证文件是不是为 SQL 或验证其语法的主要内容,如果未能解决你的问题,请参考以下文章

未找到或无法访问服务器。请验证实例名称是不是正确并且 SQL Server 已配置为允许远程连接。 (provider: 命

未找到或无法访问服务器。请验证实例名称是不是正确并且 SQL Server 已配置为允许远程连接。 (provider: 命

Oracle SQL如何编写验证用户是不是在我的网络中的sql语句(即朋友或朋友的朋友)

用于验证 sql 语法错误的 Powershell 脚本

阻止了此文件,因为它没有有效的数字签名以验证其发行者怎么回事啊?

JSON文件语法验证Golang