如何编译Oracle SQL脚本?

时间:2011-06-08 12:54:41

标签: sql oracle batch-file

我有一系列SQL文件,我想编译所有这些文件。如果使用底栖软件手动完成,则需要很长时间。我尝试使用TOAD,但我不喜欢使用破解软件。你能帮我执行一个SQL文件吗?我想写一个程序为我做一些事情。

从sql / plus我试图创建批处理文件,但在我的一些sql文件开发者使用“/”和“;”所以它导致sql / plus突然停止编译。请建议或推荐免费软件帮助。

“我想应用sql包,函数,如果它们无效则再次编译它们”

我正在使用oracle 10g。

谢谢

3 个答案:

答案 0 :(得分:2)

  • 如果您搜索类似TOAD的内容,请尝试使用Oracle提供的免费工具SQL Developer

  • 如果要重新编译数据库中的现有来源,可以使用dbms_utility.compile_schema

  • 如果您尝试批量安装多个文件,SQL*Plus应该适合您。确保您的文件格式正确。

答案 1 :(得分:1)

听起来你需要运行一个大的sql脚本。正确? Sql / Plus应该可以工作,但是如果你想要一个免费的IDE,我推荐使用SQL Developer。它并不完美,但它是更好的免费解决方案之一。

答案 2 :(得分:1)

“在我的一些sql文件开发者中使用了”/“和”;“”

您需要始终如一地使用这些来使用工具进行部署。您不希望使用GUI进行部署,因此SQL * Plus是目标的标准。一个好的Oracle GUI应该能够运行SQL * Plus部署脚本。

我通常从SET DEFINE OFF开始,否则意外的&符号会引起问题。 做一些基本的grepping - 任何带有CREATE PACKAGE,CREATE PROCEDURE,CREATE TRIGGER或CREATE TYPE(包括CREATE OR REPLACE)的脚本应该有一个“/”来执行该语句。如果没有,请修理它们。

对于第一次运行,我会分批接受它们,直到我确定它们正确执行。只要加载,我就不会担心编译错误。之后,您可以重新编译模式中的任何无效对象。

然后检查USER_ERRORS以查看仍然存在的问题。