返回首页

gbase数据、南大通用产品文档:GBase8s使用外部表移动数据

更新日期:2024年09月11日

可使用外部表装入和卸载数据库数据。
您可以发出一系列用于执行以下功能的 SQL 语句:
 将运作数据高效传输到其他系统或从其他系统传入
 以 GBase 8s 内部数据格式跨平台传输数据文件
 使用数据库服务器在定界 ASCII、固定 ASCII 与 GBase 8s 内部(原始)表示法
之间转换数据
 使用 SQL INSERT 和 SELECT 语句来指定数据库表中新列的数据映射
 提供并行标准 INSERT 操作,即可在不删除索引的情况下装入数据
 使用命名管道来支持在存储设备中装入和卸载数据,这些存储设备包括磁带机和直
接网络连接
 维护运行期间的装入和卸载统计信息的记录
 执行快速(高速)和高级(数据检查)传输
可使用 DB-Access 发出 SQL 语句,或将其嵌入 ESQL/C 程序中。

使用 DROP PROCEDURE 语句从数据库中删除用户定义的过程。该语句是 SQL
ANSI/ISO 标准的扩展。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 575
语法

元素
描述
限制
语法
function
要删除的过程或
SPL 函数的名称
必须在数据库中存在(即已注
册)
标识符
owner
UDR 所有者的名

必须拥有过程或 SPL 函数
所有者名

parameter
_type
参数的数据类型 数据类型(或数据类型列表)必
须和那些在创建过程中就已指定
的数据类型是相同的数据类型
(并且具有相同的顺序)
标识符;
数据类型
procedure 要删除的用户定
义的过程名称
必须在数据库中存在(即已注
册)
数据库对
象名
用法
删除用户定义的过程会除去该过程的文本和可执行的版本。您无法在同一个 SPL
过程内删除 SPL 过程。
不能使用 DROP ROUTINE 、DROP FUNCTION 或 DROP PROCEDURE 语句删
除受保护的例程。有关受保护的例程的更多信息,请参阅 GBase 8s SQL 参考指
南 中 sysprocedures 系统目录表的描述。
要使用 DROP PROCEDURE 语句,您必须是过程的所有者并且还必须具有数据
库的 Resource 权限或 DBA 权限。您必须还需具有编写此 UDR 所使用的程序
语言的 Usage 权限。要删除一个外部用户定义的过程,另见 删除外部过程。
如果 function 或 procedure 名称在数据库中不是唯一的,则您必须指定足够的
parameter_type 信息以区分这些名称。如果数据库服务器无法解析一个意义含糊
的 UDR 名称,即它的签名与另一个 UDR 的签名只是在一个未命名的 ROW 类

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 576
型参数中不同,则返回一个错误。(当定义了含义模糊的 function 或 procedure
时,数据库服务器不能预期此错误。)
如果不知道 UDR 是用户定义的过程还是用户定义的函数,您可以使用 DROP
ROUTINE 语句。有关更多信息,请参阅 DROP ROUTINE 语句。
对于较早的 GBase 8s 版本的向后兼容性,可以使用此语句来删除由 CREATE
PROCEDURE 语句创建的 SPL 函数。您可以在过程名称的后面包括参数数据类型,
以识别过程:
DROP PROCEDURE compare(int, int);
如果对用户定义的过程使用了指定的名称,还必须用关键字 SPECIFIC,如下例所
示:
DROP SPECIFIC PROCEDURE compare_point;
如果您包含了可选的 IF EXISTS 关键字,则如果没有指定名称的过程在当前数据
库中注册,则数据库服务器不采取任何操作(而不是向应用程序发送错误)。
确定过程是否存在
在您尝试删除用户定义的过程之前,可以通过查询系统目录来检查此过程是否在
数据库中存在。以下示例中,SELECT 语句从 sysprodures 表中检索标识为
MyProcedure 的任何过程:
SELECT * FROM sysprocedures WHERE procname = MyProcedure;
如果此查询返回一行,则名为 MyProcedure 的 UDR 注册在当前数据库中。
如果没有返回行,则您无需发出 DROP PROCEDURE 语句,但是您可能希望验
证 WHERE 子句指定的名称是否正确,以及您是否连接到正确的数据库。
如果此查询返回多行,则在当前数据库中重载过程 MyProcedure ,并且您需要检
查 MyProcedure 过程的属性以确定它们中的哪些(如果有)需要通过 DROP
PROCEDURE 语句注销。
删除外部过程
以 C 语言或 Java™ 语句编写用户定义的过程(UDP)称为外部例程。外部例程
必须包含指定共享对象文件名的外部例程引用子句。在缺省情况下,只有 DBSA
授予了内置的 EXTEND 角色的用户可以创建或删除外部例程。您还必须具有编

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 577
写此 UDR 的外部程序语言的 Usage 特权。有关 EXTEND 角色安全功能的其它
信息请参阅 授予 EXTEND 角色。 有关 C 语言或 Java 语言的 USAGE ON
LANGUAGE 子句的语法使用,请参阅 语言级权限 。
要从共享内存中删除 C 语言例程的可执行版本,请调用
IFX_UNLOAD_MODULE 函数。要用另一个例程替换可执行版本的 C 例程,请
调用 IFX_REPLACE_MODULE 函数。这些内置函数都在 UDR 定义例程中有
所描述。


*********(溢出)

$1,234.56 bbbbb$.00
$1,234.00 bbbbb$.00 $1,234.00

"-##,###.##"
"-##,###.##"
"-##,###.##"
"--#,###.##"
"---,###.##"
"---,-##.##"
"---,--#.##"
"--#,###.##"
"---,--#.##"
-12345.67
-123.45
-12.34
-12.34
-12.34
-12.34
-12.34
-1.00
-1.00
-12,345.67
-bbb123.45
-bbbb12.34
b-bbb12.34
bb-bb12.34
bbbb-12.34
bbbb-12.34
b-bbbb1.00
bbbbb-1.00
"-##,###.##"
"-##,###.##"