ITPub博客

首页 > 数据库 > 国内数据库 > GBase 8s兼容 Oracle之子程序

GBase 8s兼容 Oracle之子程序

投稿 国内数据库 作者:hfgsgrdh 时间:2021-06-21 10:53:41 0 删除 编辑

GBase 8s 当前版本所支持的 PL/SQL 语法与 Oracle 完全一致。需要注意,使用 PL/SQL 语法需要显式设置环境变量 SQLMODE 为 ’ORACLE’ 后才能生效,默认情况下 GBase 8s 的 SQLMODE 为 ’GBASE’ ,此时不支持 PL/SQL 语法。

set environment sqlmode 'oracle';

PL/SQL 子程序是可以重复调用的 PL/SQL 命名块,一般指过程和函数。通常,使用过程执行操作,使用函数计算并返回值。函数的结构与过程相同,但是函数必须包含 RETURN 子句,该子句指定函数返回的值的数据类型(过程不能有 RETURN 子句)。

子程序以子程序标题开始,该标题指定其名称和(可选)参数列表。子程序有以下几个部分:

l   声明部分(可选):本部分声明并定义局部类型、游标、常量、变量、异常。

l   可执行部分(必需):此部分包含一个或多个用于赋值、控制执行和操作数据的语句。

l   异常处理部分(可选):此部分包含处理运行时错误的代码。

使用 call 加子程序名加参数的方式调用子程序,如果子程序没有参数,或者为每个参数指定了默认值,则可以省略参数列表或指定空参数列表。调用子程序的形式如下:

call subprogram_name [ ( [ parameter [,   parameter]... ] ) ]

下面是创建并调用子程序的示例,使用“ / ”作为判断语句结束的标志:

示例一:创建并调用函数:

CREATE FUNCTION p1   (original NUMBER)

RETURN NUMBER

AS

  original_squared NUMBER;

BEGIN

  original_squared := original * original;

  RETURN original_squared;

END;

/

调用代码及结果如下:

SELECT p1 (100) FROM dual;

 

结果 :

10000.0000000000

 

 

 

示例二:创建并调用过程:

CREATE OR REPLACE PROCEDURE p2 AS

BEGIN

    FOR i   IN 1..5 LOOP

        DBMS_OUTPUT.PUT_LINE(i || '! = ' || f_6_7(i));

    END   LOOP;

END ;

/

调用代码及结果如下:

call p2();

 

结果 :

1! =1

2! =2

3! =6

4! =24

5! =120

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70002446/viewspace-2777557/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2021-06-21

  • 博文量
    2
  • 访问量
    1088