式样书:
1。od_recv_date := TO_DATE(iv_recv_date, xxfnd_constant_pkg.cv_standard_date_mask);
2。1处理要是有异常的话,就呼出expt_recv_date_error(一个异常)。我的问题是,我一般写异常的语句都是
if.... then
raise exception_name;
现在我已经定义了expt_recv_date_error,我怎么才能知道什么时候发生异常。比如我这样写:
od_recv_date := TO_DATE(iv_recv_date, xxfnd_constant_pkg.cv_standard_date_mask);
raise expt_recv_date_error;
这一定是不对的,因为不管有没有异常,都调用了expt_recv_date_error。前辈们帮帮我哦!
1。od_recv_date := TO_DATE(iv_recv_date, xxfnd_constant_pkg.cv_standard_date_mask);
2。1处理要是有异常的话,就呼出expt_recv_date_error(一个异常)。我的问题是,我一般写异常的语句都是
if.... then
raise exception_name;
现在我已经定义了expt_recv_date_error,我怎么才能知道什么时候发生异常。比如我这样写:
od_recv_date := TO_DATE(iv_recv_date, xxfnd_constant_pkg.cv_standard_date_mask);
raise expt_recv_date_error;
这一定是不对的,因为不管有没有异常,都调用了expt_recv_date_error。前辈们帮帮我哦!
declarebegin
执行1
exception
when 异常种类 then
执行2
end;
大家帮帮忙哦!!!
ACCESS_INTO_NULL
为对象赋值前必需初始化对象。对应ORA-06530错误。CASE_NOT_FOUND
使用CASE语句时在WHEN子句中没有包含必需的条件分支,并且没有包含ELSE语句。
对应ORA-06592错误。COLLECTION_IS_NULL
给集合元素赋值前,必需初始化集合元素。对应ORA-06531错误。CURSOR_ALRADY_OPEN
重新打开已经打开的游标。对应ORA-06511错误。DUP_VAL_ON_INDEX
在惟一索引所对应的列上键入重复值。对应ORA-00001错误。INVALID_CURSOR
试图操作不合法的游标。对应ORA-01001错误。INVALID_NUMBER
内嵌SQL语句不能有效的将字符转换成数字。对应ORA-01722错误。NO_DATA_FOUND
执行SELECT INTO未返回行。对应ORA-01403错误。TOO_MANY_ROWS
执行SELECT INTO语句时,返回超过一行。对应ORA-01422错误。ZERO_DIVIDE
PL/SQL块中,使用数字除0,对应ORA-01476错误。SUBSCRIPT_BEYOND_COUNT
元素下标超出嵌套表或VARRAY元素的范围。对应ORA-06533错误。SUBSCRIPT_OUTSIDE_LIMIT
使用嵌套表或VARRAY元素时,元素下标为负。对应ORA-06532错误。VALUE_ERROR
PL/SQL中赋值操作时,变量长度不足以容纳实际数据,或尝试将无效的字符串转换成数据。
对应ORA-06502错误。LOGIN_DENIED
连接到ORACLE数据库时,用户名/密码不正确。对应ORA-01017错误。NOT_LOGGED_ON
应用程序没有连接到数据库。对应ORA-01012错误。PROGRAM_ERROR
PL/SQL内部问题。对应ORA-06510错误。ROWTYPE_MISMATCH
执行赋值操作时,宿主游标变量和PL/SQL游标变量返回类型不兼容。对应ORA-06504错误。SELF_IS_NULL
在NULL实例上调用成员方法。对应ORA-30625错误。STORAGE_ERROR
PL/SQL块运行时超出了内存空间或者内存被破坏。SYS_INVALID_ROWID
将字符串转变为ROWID时没有使用有效的字符串。对应ORA-01410错误。TIMEOUT_ON_RESOURCE
ORACLE在等待资源时超时。对应ORA-00051错误。TRANSACTION_BACKED_OUT
由于死锁提交被退回 对应ORA-006 错误
如果是这样的话,你可以用oracle自带的异常,如VALUE_ERROR,NO_DATE_FOUND等,没必要自定义一个异常了。用oracle自带异常的方法:DECLARE
..
BEGIN
od_recv_date := TO_DATE(iv_recv_date, xxfnd_constant_pkg.cv_standard_date_mask);
...EXCEPTION
WHEN VALUE_ERROR
THEN ...
WHEN NO_DATE_FOUND
THEN ...
END;更多的oracle自带异常你可以在网上找找,应该会有你需要的。
when others then
oracle自带异常都在这里了,呵呵
的功能是做什么的,xxfnd_constant_pkg.cv_standard_date_mask好像是调的包里面的一个过程,如果是这样的话你的异常就在xxfnd_constant_pkg.cv_standard_date_mask这里面处理就是了,只是把处理的结果反馈回来
2。1处理要是有异常的话,就呼出expt_recv_date_error(一个异常)。答:嵌入匿名块... --其他代码BEGIN
od_recv_date := TO_DATE(iv_recv_date, xxfnd_constant_pkg.cv_standard_date_mask);
EXCEPTION
WHEN OTHERS THEN
RAISE expt_recv_date_error;
END;... --其他代码