验证文件是不是为 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语句(即朋友或朋友的朋友)