返回首页

gbase数据、南大通用产品文档:GBase8cpackage

更新日期:2024年09月11日

package 是一组相关存储过程、函数、变量、常量、游标等PL/SQL 程序的组合,具有
面向对象的特点,可以对PL/SQL 程序设计元素进行封装。package 中的函数具有统一性,
创建、删除、修改都统一进行。
package 包含包头(Package Specification)和Package Body 两个部分,其中包头所包含

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
721
的声明可以被外部函数、匿名块等访问,
而在包体中包含的声明不能被外部函数、
匿名块等
访问,只能被包体内函数和存储过程等访问。
PACKAGE 的创建请参见CREATE PACKAGE。
须知:- 跨PACKAGE 变量不支持作为FOR 循环中控制变量使用。- PACKAGE
中定义类型不支持删除、修改等操作,也不支持定义表。
-
不支持以
SCHEMA.PACKAGE.CUROSR 的形式引用cursor 变量。- 带参数的CURSOR 仅支持在当
前PACKAGE 内打开。
17 自治事务
自治事务(Autonomous Transaction),在主事务执行过程中新启的独立的事务。自治
事务的提交和回滚不会影响主事务已提交的数据,同时自治事务也不受主事务影响。
自治事务在存储过程、函数和匿名块中定义,用
PRAGMA
AUTONOMOUS_TRANSACTION 关键字来声明。

在这个例子中,当sales大于50000时,第一个和第二个条件是正确的。但是,因为第
一个条件是正确的,所以分配了bonus值1500,而第二个条件没有经过测试。在bonus被
分配了价值之后,控制传递到DBMS_OUTPUT.PUT_LINE调用。
DECLARE PROCEDURE p (sales NUMBER) IS
bonus NUMBER := 0;
BEGIN
IF sales > 50000 THEN
bonus := 1500;
ELSIF sales > 35000 THEN
bonus := 500;
ELSE
bonus := 100;
END IF;
DBMS_OUTPUT.PUT_LINE ('Sales = ' || sales || ', bonus = ' || bonus || '.');
END p;
BEGIN
p(55000);
p(40000);
p(30000);
END;

--Result:
--Sales = 55000, bonus = 1500.
--Sales = 40000, bonus = 500.
--Sales = 30000, bonus = 100.

导出ORC 文件说明

orc 文件导出语法同8a 的常规导出:
select ... into outfile 'file_name' [option] from ...;
select ... from ... into outfile 'file_name' [option];
option 参数支持情况:
1.可正常使用的参数:outfilemode by、writemode by、filecount、filesize、character
set
2.语法可通过并正常执行,但实际不起作用,会报warnings 的参数:files/columns
terminated by、files/columns enclosed by、files/columns escaped by、lines terminated
by、lines starting by、files/columns double_enclosed by、null_value、files/columns
length、with head

orc 文件导出支持本地、ftp、sftp、hdfs 方式导出

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1221

orc 文件导出不支持远程导出(rmt)、kafka 导出、http 导出

orc 文件导出需指定导出文件名后缀为".orc"或者".ORC"。不支持导出压缩的
orc 文件,如后缀为.orc.gz 导出的仍然为压缩的文本文件

orc 文件导出支持配置导出的orc 文件参数:stripe 大小(默认64M)、orc 文件
内部的数据压缩格式(none/zlib/zstd)、orc 文件压缩块大小(默认64k),可通过
配置文件、global、session 参数设置实现,如:
set global gbase_export_orc_stripe_size=67108864
set global gbase_export_orc_compression_kind=zlib;
set global gbase_export_orc_compression_block_size=65536
注:数字单位均为字节

orc 文件导出支持设置导出orc 文件大小超限分裂,通过参数filesize 指定查
询结果有效数据长度大于等于filesize 值时,
分裂成新的文件(数据以行保存,
新数据文件不会跨行截断保存)。
filesize 默认值为0,
即不限制导出文件大小,
filesize 的单位默认为字节,支持K/M/G 写法,如64M/16G.

orc 文件导出支持设置并行导出ORC 文件到HDFS 的文件个数,由参数
filecount 指定,默认不限制并行导出的文件个数,即并行导出每个分片为一
个文件。如果同时指定filecount 和filesize 参数,则表示并行导出filecount
组文件,每组文件按filesize 自动分裂。只对导出到HDFS 有效。

orc 文件导出支持设置导出文件自动创建目标目录,即导出时自动创建与导
出文件同名的目标目录,可使用参数gbase_export_directory 控制,默认值为
1 表示自动创建,设置为0 时不创建文件名的同名目录。该参数支持配置文
件、global、session 设置。