如何验证我的 PL/SQL 语法

Ami*_*mir 1 compiler-construction plsql

对不起,我的英语不好。我希望你能得到我想要的。

我有很多 *.sql 文件,我想编写一个程序来编译它们并通知我是否有任何问题(问题或错误)。

我的一个朋友为 java 编写了一个 IDE,因为我记得他使用 javac 来生成错误代码。另一方面,我已经看到 IDE 的 Visual Studio 或 Netbean 会自动告诉您是否有错误。所以现在我想知道有人知道如何使用 sql 文件做到这一点吗?

换句话说,我想为 SQL 文件(PL/SQL)编写一个编辑器来编译我的代码并告诉我我的错误是什么。

当我尝试在 SQL PLUS 中编译所有这些时,会出现这个问题,这太无聊了。

请帮我...

Jef*_*emp 5

.sql 文件可以包含许多不同的内容 - DDL、SQL 查询、DML、PL/SQL 匿名块,以及CREATE用于视图和存储过程/函数/包的命令。

您需要知道那些 .sql 文件中的内容。如果你只是在 SQL*Plus 中盲目地运行它们,你不知道它们会做什么 - 我可以在我的主文件夹中给你一组 .sql 脚本,你会发现你的数据库会非常糟糕状态,如果你只是随机运行它们 - 一些脚本创建/修改/删除表,或者删除或修改数据,一些脚本提交他们的更改(因此在运行脚本后发出 ROLLBACK 不会帮助你),其他脚本启动或停止数据库:)

如果您知道您的所有 .sql 脚本只包含CREATE用于视图或存储过程、函数和/或包的命令,您只需从 SQL*Plus 命令行运行它们 - 您可以很容易地生成一个脚本来运行它们一个后对方-然后检查USER_OBJECTS/ ALL_OBJECTS/DBA_OBJECTS任何东西在那里STATUS = 'INVALID'和查询USER_ERRORS任何编译器错误。但是请记住,即使这种方法也是破坏性的,因为它会覆盖您运行它们的数据库中的任何现有存储过程等。