Gbase8s CREATE ROUTINE FROM 语句

使用 CREATE ROUTINE FROM 语句通过引用驻留在单个文件中的 CREATE FUNCTION 语句或
CREATE PROCEDURE 语句的文本来注册 UDR。
该语句是 SQL ANSI/ISO 标准的扩展。
你可以在 ESQL/C 中使用此语句。
用法
ESQL/C 程序不能使用 CREATE FUNCTION 或 CREATE PROCEDURE 语句直接定义 UDR 。您
可以这样做:

  1. 使用 CREATE FUNCTION 或 CREATE PROCEDURE 语句创建源文件。
  2. 在 ESQL/C 程序中执行 CREATE ROUTINE FROM 语句将此源文件的内容发送到数据库
    服务器用于执行。您指定的文件只能包含一个 CREATE FUNCTION 或 CREATE
    PROCEDURE 语句。
    您提供的文件规范是相对的。如果您不提供路径名,客户端应用程序在当前目录中寻找文件。
    如果您不知道编译时文件中的 UDR 是否是一个函数或过程,请使用 GBase 8s ESQL/C 程序中的
    CREATE ROUTINE FROM 语句。如果您确实知道 UDR 是否是一个函数或过程,建议您使用匹配语句
    来存取源文件:
    ⚫ 要存取用户定义的函数,请使用 CREATE FUNCTION FROM 。 ⚫ 要存取用户定义的过程,请使用 CREATE PROCEDURE FROM 。 当 IFX_EXTEND_ROLE 配置参数设置成 1 或 ON 时,只有被数据库服务器管理员(DBSA)授
    权内置 EXTEND 角色的用户才能可以创建外部例程。此外,您对要注册例程所在的数据库必须至
    少持有的 Resource 存取权限。还必须对编写例程所使用的程序语言拥有 Usage 权限。(有关使用
    C 语言将 Usage 特权授予用户或角色的语法,请参阅语言级权限。)
    例程使用创建时有效的对照顺序。请参阅 SET COLLATION 语句 获取有关使用非缺省对照的信
    息。
    示例
    以下语句通过参考 del_ord.sql 文件中的文本在 UDR 注册。
    EXEC SQL CREATE ROUTINE FROM ‘del_ord.sql’;
    ESQL/C 源代码示例:
    #include <stdio.h>
    main()
    {
    printf( “CREATE ROUTINE FROM ESQL Program running.\n\n”);
    EXEC SQL WHENEVER ERROR STOP;
    EXEC SQL connect to ‘stores_demo’;
    EXEC SQL CREATE ROUTINE FROM ‘del_ord.sql’;
    EXEC SQL disconnect current;
    printf(“\nCREATE ROUTINE Sample Program over.\n\n”);
    exit(0);
    }
    del_ord.sql
    CREATE FUNCTION delete_order( p_order_num int) RETURNING int, int;
    DEFINE item_count int;
    SELECT count(*) INTO item_count FROM items
    WHERE order_num = p_order_num;
    DELETE FROM orders WHERE order_num = p_order_num;
    RETURN p_order_num, item_count;
    END FUNCTION;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值