Gbase8s CREATE PROCEDURE FROM 语句

使用 CREATE PROCEDURE FROM 语句存取用户定义的过程。CREATE PROCEDURE 语句的实际文本驻留在单独的文件中。

该语句是 SQL ANSI/ISO 标准的扩展。您可以在 GBase 8s ESQL/C 中使用此语句。

用法

不能直接在 GBase 8s ESQL/C 程序中创建用户定义的过程。这就是说,程序不能包含 CREATEPROCEDURE 语句。

要在 ESQL/C 程序中使用用户定义的过程:

  1. 用 CREATE PROCEDURE 语句创建源文件。

  2. 使用 CREATE PROCEDURE FROM 语句来将此源文件的内容发送到数据库服务器用于执行。

文件仅能包含一个 CREATE PROCEDURE 语句。

例如,假设以下 CREATE PROCEDURE 语句是在称为 raise_pr.sql 的单独文件中:

CREATE PROCEDURE raise_prices( per_cent INT )

UPDATE stock – increase by percentage;

SET unit_price = unit_price +

( unit_price * (per_cent / 100) );

END PROCEDURE;

在 GBase 8s ESQL/C 程序中,您可以使用以下 CREATE PROCEDURE FROM 语句存取raise_prices( ) SPL 过程:

EXEC SQL create procedure from ‘raise_pr.sql’;

如果您不确定文件中的 UDR 是否返回值,请使用 CREATE ROUTINE FROM 语句。

当 IFX_EXTEND_ROLE 配置参数设置成 ON 时,只有拥有内置 EXTEND 角色的用户才可以创建外部例程。

当 IFX_EXTEND_ROLE 配置参数设置成 1 或 ON 时,只有由数据库服务器管理员(DBSA)授予内置 EXTEND 角色的用户才能创建外部例程。此外,您对要注册例程所在的数据库必须至少持有的 Resource 存取权限。还必须对编写例程所使用的程序语言拥有 Usage 权限。(有关使用 C语言将 Usage 特权授予用户或角色的语法,请参阅 语言级权限 。)

用户定义过程,类似用户定义函数,使用创建时有效的对照顺序。请参阅 SET COLLATION 语句获取关于使用非缺省对照的信息。

持有文件的缺省目录

数据库服务器将此指定的文件名(以及任何路径名)看作相关的。

在 UNIX™ 上,如果您指定一个简单文件名而不是完整的路径名作为 file 参数,则客户机应用程序在数据库驻留的计算机上的主目录中寻找文件,如果您在此计算机上没有主目录,则缺省目录为根目录。

在 Windows™ 上,如果您指定文件名而非目录名为 file 参数,则客户端应用程序在您的当前工作目录中寻找文件(如果数据库在本地计算机上)。否则,缺省目录为 %GBASEDBTDIR%\bin 。

重要: GBase 8s ESQL/C 预处理器不处理您指定的文件的内容。它只将内容发送到数据库服务器用于执行。因此对您在 CREATE PROCEDURE FROM 中指定的文件是否实际包含 CREATE PROCEDURE语句没有语法检查。然而,要提高代码的可读性,建议匹配这两个语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值