【问题标题】:Practical difference between .pls and .sql file in oracleoracle中.pls和.sql文件的实际区别
【发布时间】:2015-12-17 18:35:13
【问题描述】:

.pls 和 .sql 文件在 oracle 中的实际区别是什么。 两者中不同类型的语句有什么限制?

我在 unix(korn 脚本)中获得了一个项目,该项目在不同的地方同时使用 .sql 和 .pls 文件。试图找出应该在哪里使用哪个。

【问题讨论】:

  • 我记得那些散布着各种文件的日子,里面有代码——没有备份,不执行就无法验证。您应该帮自己一个忙,将所有代码迁移到数据库中的打包过程中,使用 DBMS_Scheduler 满足任何调度要求

标签: oracle unix sqlplus ksh


【解决方案1】:

文件后缀在很大程度上只是约定俗成的问题。我们可以使用它们为其他开发人员提供有用的元数据。

所以.pls 表明(我们希望)该文件是一个 PL/SQL 脚本,创建一个 PL/SQL 包或存储过程。在其他商店中,我们可能会看到.pks.pkb 分别表示包规范脚本和包正文脚本。带有.tab.tbl 扩展名的文件指示DDL 创建表。因为这只是一个约定,它需要纪律(或代码审查)以确保我们保持一致。

唯一的区别是.sql。尽管约定是它表示一些 SQL(查询,或者可能是 DML 或 DDL),但它在 SQL*Plus 中具有特殊属性。如果我们有一个名为whatever.sql 的脚本,我们可以在 SQL*Plus 中这样调用它...

SQL>  @whatever

...而如果脚本有任何其他扩展名,我们必须在调用中包含扩展名...

SQL>  @whatever.pls

其他 IDE 或其他客户端(例如构建脚本)可能会使用文件扩展名作为过滤机制或应用语法突出显示,但它们的规则应始终由首选项控制。

"两者中不同类型的语句有什么限制?"

总而言之,没有任何限制。我工作过的一些地方只使用了.sql 文件,其他地方则使用了复杂的脚本:.tbl.idx.vw 等。社交变态者可以只使用.txt 来处理他们的所有文件:数据库赢了不在乎。只要它是有效的 Oracle 语法,代码就会运行。

【讨论】:

  • 所以在 sqlplus 中,无论扩展名如何,我们都可以拥有 pl/sql 语句,如声明、游标等。对吗?或者换句话说,即使我将 .pls 更改为 .sql 它仍然可以工作?
  • 它会运行。您可能不应该更改扩展名。最好问问你的同事他们使用什么约定并遵守这些约定。
  • 值得注意的是,'.sql' 扩展名将始终用于脚本带有 .sql 扩展名但根本没有扩展名的情况(这种情况永远不会真正发生)。 SQL>! cat full 从 dual 中选择“full”; SQL>! cat full.sql select 'sql' from dual; SQL> @full 'SQ --- sql
  • 好答案。因为我们在 Windows 上,所以我们的团队使用的约定是 .pls 用于 Oracle PL-SQL 文件,而 .sql 用于 Microsoft SQL Server T-SQL 文件。这样,默认文件关联意味着文件始终在正确的程序中打开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
相关资源
最近更新 更多