在特定产品中,特定安装中有许多RewriteEngine on
RewriteRule ^([0-9]+) index.php?order=$1 [NC,L]
。即使删除了RewriteEngine on
RewriteRule ^([a-zA-Z]+) index.php?order=$1 [NC,L]
语句,我们也进行了检查,处理速度更快。并不会改变我们的流程。包裹中的退出语句有什么影响?
packages
答案 0 :(得分:2)
好吧,EXIT
当然不是那些包的一部分,因为它仅用于退出循环:
SQL> create or replace package pkg_test as
2 procedure p_test;
3 end;
4 /
Package created.
SQL> create or replace package body pkg_test as
2 procedure p_test is
3 begin
4 null;
5 exit; --> exit is here
6 end;
7 end;
8 /
Warning: Package Body created with compilation errors.
SQL> show err
Errors for PACKAGE BODY PKG_TEST:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/7 PL/SQL: Statement ignored
5/7 PLS-00376: illegal EXIT/CONTINUE statement; it must appear inside
a loop
SQL>
作为SQL * Plus命令,EXIT
(来自documentation)
提交或回滚所有未决的更改,注销Oracle数据库,终止SQL * Plus并将控制权返回给操作系统。
我假设您在创建数据库对象的.SQL脚本的末尾使用它(至少,这就是我对您提到的“在特定的安装中”的理解)。
如果是这样,您会看到它的作用。如果省略它,则处理过程到达.SQL脚本的末尾时,它将保留在SQL * Plus中,并且不会退出,因此您必须手动进行处理。
最后,create package
和类似的命令都是DDL,它们会隐式提交,因此-您在脚本末尾的commit
几乎没有用(除非有些DML我们看不到)