2011-06-08 85 views
0

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

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

“我想应用SQL包,功能,如果它们是无效的重新编译他们”

我使用Oracle 10g。

谢谢

回答

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

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

  • 如果尝试在批处理安装几个文件,SQL*Plus应该为你工作。确保您的文件格式正确。

+0

如何使用Sql开发人员?我已经拥有它但我没有任何想法如何编译900 SQL文件?在TOAD我只是粘贴所有的文件地址并按下运行,它是如何在sql developer.would你解释更多? – Amir 2011-06-08 13:15:29

+0

我试图创建一个批处理文件,并在sqlplus中运行,但是我的一些文件没有遵循正确的格式,这就是为什么在编译过程中它会停止... – Amir 2011-06-08 13:18:54

+0

SQL是一种解释型语言,没有“编译”。你的意思是PL/SQL?也就是说,900个文件价值的PL/SQL函数,过程和包?此外,还有免费版本的蟾蜍,可能会为你工作。 – 2011-06-08 13:27:28

1

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

+0

他们是900左右的sql包,在这种情况下怎么样?以及如何我可以看到哪一个有效,哪一个是无效的?也请参阅上面的评论 – Amir 2011-06-08 13:16:40

1

“在我的一些SQL文件,开发商用‘/’和‘;’”

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

我一般开始与SET DEFINE OFF否则意想不到的符号(&)引起的问题。 做一些基本的grepping - 任何具有CREATE PACKAGE,CREATE PROCEDURE,CREATE TRIGGER或CREATE TYPE(包括CREATE OR REPLACE)的脚本都应该有一个“/”来执行该语句。如果他们不这样做,修复它们。

对于第一次运行,虽然,我会拿他们的10个批次,直到我确信他们正确执行。只要加载,我不会担心编译错误。之后,您可以重新编译模式中的任何无效对象。

然后检查USER_ERRORS,看看有什么仍然是断开的。