inout type;
) is/as
zzzz type;
begin
sqlpro;
exception
exceptionxxxxx;
commit;
end;
87、 常发生的异常有哪些?
常用预定义例外
CURSOR_ALREADY_OPEN — ORA-06511 SQLCODE = -6511 游标已经打开
DUP_VAL_ON_INDEX — ORA-00001 SQLCODE = -1 违反唯一性约束
INVALID_CURSOR — ORA-01001 SQLCODE = -1001 非法游标操作
INVALID_NUMBER — ORA-01722 SQLCODE = -1722 字符向数字转换失败
LOGIN_DENIED — ORA-01017 SQLCODE = -1017
NO_DATA_FOUND — ORA-01403 SQLCODE = +100 没有找到数据
NOT_LOGGED_ON — ORA-01012 SQLCODE = -1012 没有连接到数据库
PROGRAM_ERROR — ORA-06501 SQLCODE = -6501 内部错误
STORAGE_ERROR — ORA-06500 SQLCODE = -6500
TIMEOUT_ON_RESOURCE — ORA-00051 SQLCODE = -51
TOO_MANY_ROWS — ORA-01422 SQLCODE = -1422 返回多行
TRANSACTION_BACKED_OUT — ORA-00061 SQLCODE = -61
VALUE_ERROR — ORA-06502 SQLCODE = -6502 数值转换错误
ACCESS_INTO_NULL试图为NULL对象的属性赋值
ZERO_DIVIDE — ORA-01476 SQLCODE = -1476 被零除
OTHERS — 其它任何错误的处理
88、 如何使用异常?
在oracle中有三种类型的异常。预定义的异常 非预定义的异常 用户定义的异常 第二种非预定义的异常是与特定的oracle错误关联。并且用PRAGM EXCEPTION_INIT(EXCEPTION_NAME,ERROR_NUMBER)关联一起的。但是到底有什么用啊? 例如:declare dup_primary_key exception; pragma exception_init(dup_primary_key,-1); begin insert into itemfile values(‘i201′,’washer’,'spares’,100,50,250,12,30); exception when dup_primary_key then dbms_output.put_line(‘重复项编号-主键冲突’); end
第一种的使用方法:exception
when 异常名称 then
异常处理代码;
第三种的用法:if 条件 then
raise_application_error(-20000“““`-20999,提示信息);
end if;
89、优化的策略一般包括:
内存优化
操作系统优化
数据存储的优化
网络优化等方法
具体到不同的数据库涉及到要调整不同的数据库配置文件、不同的操作系统参数、网络参数等等, 不同的数据库不同.