oracle中.pls和.sql文件的实际区别

xGe*_*Gen 3 unix oracle ksh sqlplus

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

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

APC*_*APC 7

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

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

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

SQL>  @whatever
Run Code Online (Sandbox Code Playgroud)

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

SQL>  @whatever.pls
Run Code Online (Sandbox Code Playgroud)

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

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

总而言之,没有限制。我曾用过什么,但有些地方.sql的文件,其他的就剧本的复杂动物园:.tbl.idx.vw等反社会可以只使用.txt他们的所有文件:数据库不会在意。只要它是有效的 Oracle 语法,代码就会运行。