PL/SQL中GOTO语句和标签
在PL/SQL中也提供GOTO语句,其语法是
GOTO label;
这里label是在PL/SQL块中定义的标签.标签是用双箭头括号括起来的.当执行GOTO语句的时候,控制会立即转到由标签标识的语句.
1.对于GOTO的限制
a.对于块,循环或者IF语句而言,想要从外层跳到内层是非法的.
b.使用GOTO子句从一个IF子句跳到另一个子句中也是非法的.
begin
if x>3 then
...
goto<<lbl>>
else
<<lbl>>
...
end if;
end;
c.从一个异常处理块内跳转到当前块是非法的。
2.为循环设定标签
循环本身是可以被设定标签的。如果进行了设定,那么可以在EXIT语句中使用该标签指明要退出哪个循环.例如:
<<l_outer>>
for v_outer_index in 1..10 loop
...
<<I_inner>>
for v_inner_index in 1..30 loop
...
if v_outer_index > 5 then
EXIT I_outer;
end if;
end loop I_inner;
end loop I_outer;
如果循环设定了标签,那么可以在END LOOP语句的后面包含该标签名,如上面所示.
3.谨慎的使用GOTO语句
在使用GOTO语句时一定要小心,不然都是些跳来跳去的代码,很难理解也很难维护.
几乎所有使用GOTO的情况都可以使用其他的PL/SQL控制结构,例如循环或者条件结构,来重新进行编写.也可以使用异常处理来退出深层嵌套的循环,而不用直接跳转到结尾.
4.null语句
在一些情况下,你可能想要显式的指明不进行任何操作.这可以通过使用NULL语句来实现.NULL语句不做任何事情,它只是一个占位符.
例如:
begin
...
if ... then
...
else
null;
end if;
...
end;
相关文档:
ASP.NET防止SQL注入函数:
using System;
using System.Text.RegularExpressions;
using System.Web;
namespace FSqlKeyWord
......{
/**//**//**//// <summary>
/// SqlKey 的摘要说明。
/// </summary>
public class S ......
当Oracle数据库创建完成后,系统将会自动运行utlrp.sql这个脚本文件(D:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN),但是,当通过定制安装类型的方式创建了数据库时,系统则不会运行utlrp.sql这个脚本,所以,建议在创建、更新或迁移一个数据库后,运行一下utlrp.sql这个脚本,以验证数据库安装是否成功,这样可以重新编译 ......
''' <summary>
''' SQL文執行結果のEXCEL出力
''' </summary>
''' <param name="connString">OLEDB接続文字列</param>
''' <param name="sqlString">SQL文</param>
''' <param name="savePath">出力ファイルパス</param>
......
--desc 表名 描述表的内容
desc emp;
--加上数学表达式和列名 ""保持格式
select ename "name space", sal*12 year_sal from emp;
select 2*3 from dual;
select sysdate from dual;
--空值的数学表达式 结果都是空值
select ename, sal*12 + comm from emp;
- ......
(转载)SQL 2K 数据类型
(1)char、varchar、text和nchar、nvarchar、ntext
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据 ......