ITPub博客

首页 > 数据库 > 数据库开发技术 > Halo 14.5 PatchSet 220825

Halo 14.5 PatchSet 220825

原创 数据库开发技术 作者:Jet_Zhang 时间:2022-08-25 15:00:00 0 删除 编辑

-- 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;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
中国南方Oracle用户组(SOUG)联合创始人,Oracle ACE,曾服务于国外某大型银行,曾担任国内某中型保险公司的技术经理,现为易景科技合伙人、首席架构师、CTO。主要研究方向数据库内核。

注册时间:2024-06-26

  • 博文量
    124
  • 访问量
    542478