暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Halo 14.5 PatchSet 220825

Halo Tech 2022-08-25
122

-- PL/SQL支持执行动态SQL

-- PL/SQL支持错误码ZERO_DIVIDE、VALUE_ERROR

-- 支持raise_application_error

-- PL/SQL支持自定义exception

-- PL/SQL支持依据PACKAGE变量类型创建新的变量

-- PL/SQL支持PACKAGE常量

-- PL/SQL支持隐式游标

-- PL/SQL支持自定义复合类型变量直接赋值

-- 支持存储过程无参数不带括号执行

-- 完善PACKAGE权限管理

-- 修复使用绑定变量时空串和NULL的等价转换问题

halo0root=# BEGIN

halo0root$#    FOR rec IN (SELECT *

halo0root$#                  FROM dual)

halo0root$#    LOOP

halo0root$#       DBMS_OUTPUT.put_line (rec.dummy);

halo0root$#    END LOOP;

halo0root$# END;

halo0root$# /

X

DO


halo0root=# declare

halo0root$# pnum number;

halo0root$# begin

halo0root$# pnum:='abc';

halo0root$# exception

halo0root$# when VALUE_ERROR then dbms_output.put_line('算术或转化错误');

halo0root$# when others then dbms_output.put_line('其他例外');

halo0root$# end;

halo0root$#

算术或转化错误

DO


halo0root=# DECLARE

halo0root$#    v_student_id    int := -20;

halo0root$#    v_total_courses EXCEPTION;

halo0root$#    e_invalid_id    EXCEPTION;

halo0root$# BEGIN

halo0root$# if v_student_id < 0 THEN

halo0root$# raise v_total_courses; 

halo0root$# end if;

halo0root$# exception  

halo0root$# when e_invalid_id then 

halo0root$# dbms_output.put_line('e_invalid_id');

halo0root$# when v_total_courses then 

halo0root$# dbms_output.put_line('v_total_courses');

halo0root$# end;

halo0root$# /

v_total_courses

Do


halo0root=# DECLARE

   v_num1 integer := 201;

   v_num2 integer := 0;

   v_result number;

BEGIN

   v_result := v_num1 / v_num2;

   DBMS_OUTPUT.PUT_LINE ('v_result: '||v_result);

EXCEPTION

   WHEN ZERO_DIVIDE THEN

       DBMS_OUTPUT.PUT_LINE ('A number cannot be divided by zero.');

END;

/

A number cannot be divided by zero.

DO


文章转载自Halo Tech,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论