华为云用户手册

  • PKG_UTIL PKG_UTIL支持的所有接口请参见表1: 表1 PKG_UTIL 接口名称 描述 PKG_UTIL.LOB_GET_LENGTH 获取lob的长度。 PKG_UTIL.LOB_READ 读取lob对象的一部分。 PKG_UTIL.LOB_WRITE 将源对象按照指定格式写入到目标对象。 PKG_UTIL.LOB_APPEND 将lob源对象追加到目标lob对象。 PKG_UTIL.LOB_COMPARE 根据指定长度比较两个lob对象。 PKG_UTIL.LOB_MATCH 返回一个字符串在LOB中第N次出现的位置。 PKG_UTIL.LOB_RESET 将lob的指定位置重置为指定字符。 PKG_UTIL.LOB_GET_LENGTH 该函数获取并返回指定的LOB类型对象的长度。 PKG_UTIL.LOB_READ_HUGE 根据指定的长度及起始位置偏移读取LOB内容的一部分,并返回读取到的LOB和长度。 PKG_UTIL.LOB_WRITEAPPEND_HUGE 该函数将源blob/clob对象读取指定长度内容,并追加到目标blob/clob对象, 并返回目标对象。 PKG_UTIL.LOB_APPEND_HUGE 该函数将源blob/clob对象追加到目标blob/clob对象, 并返回目标对象。 PKG_UTIL.READ_BFILE_TO_BLOB 该函数将源BFILE文件读取成目标BLOB对象, 并返回目标对象。 PKG_UTIL.LOB_COPY_HUGE 该函数将源blob/clob对象,从指定偏移读取指定长度内容,写入到目标blob/clob对象的指定偏移位置, 并返回目标对象。 PKG_UTIL.BLOB_RESET 该函数将BLOB中一段数据set为value值,返回处理后的BLOB以及实际处理的长度。 PKG_UTIL.CLOB_RESET 该函数将一段数据set为空格,返回处理后的CLOB以及实际处理的长度。 PKG_UTIL.LOADBLOBFROMFILE 将源BFILE对象,从指定偏移读取指定长度内容,写入到目标BLOB对象的指定偏移位置, 并返回目标对象,读取位置,写入位置。 PKG_UTIL.LOADCLOBFROMFILE 将源BFILE对象,从指定偏移读取指定长度内容,写入到目标CLOB对象的指定偏移位置, 并返回目标对象,读取位置,写入位置。 PKG_UTIL.LOB_CONVERTTOBLOB_HUGE 将src_clob从指定偏移位置读取指定长度内容转成BLOB,并写入dest_lob的指定位置,amount为要转换的长度。 PKG_UTIL.LOB_CONVERTTOCLOB_HUGE 将src_clob从指定偏移位置读取指定长度内容转成CLOB,并写入dest_lob的指定位置,amount为要转换的长度。 PKG_UTIL.BFILE_GET_LENGTH 该函数获取并返回指定的BFILE文件的长度。 PKG_UTIL.BFILE_OPEN 该函数打开BFILE文件,返回文件描述符。 PKG_UTIL.BFILE_CLOSE 该函数关闭打开的BFILE文件。 PKG_UTIL.LOB_WRITE_HUGE 将源对象从起始位置读取len长度内容,写入目标LOB对象的指定偏移位置,覆盖该位置原内容, 并返回目标LOB对象。 PKG_UTIL.IO_PRINT 将字符串打印输出。 PKG_UTIL.RAW_GET_LENGTH 获取raw的长度。 PKG_UTIL.RAW_CAST_FROM_VARCHAR2 将varchar2转化为raw。 PKG_UTIL.RAW_CAST_FROM_.... 将binary integer转化为raw。 PKG_UTIL.RAW_CAST_TO_BI.... 将raw转化为binary integer。 PKG_UTIL.RANDOM_SET_SEED 设置随机种子。 PKG_UTIL.RANDOM_GET_VALUE 返回随机值。 PKG_UTIL.FILE_SET_DIRNAME 设置当前操作的目录。 PKG_UTIL.FILE_OPEN 根据指定文件名和设置的目录打开一个文件。 PKG_UTIL.FILE_SET_MAX_LINE_SIZE 设置写入文件一行的最大长度。 PKG_UTIL.FILE_IS_CLOSE 检测一个文件句柄是否关闭。 PKG_UTIL.FILE_READ 从一个打开的文件句柄中读取指定长度的数据。 PKG_UTIL.FILE_REA DLI NE 从一个打开的文件句柄中读取一行数据。 PKG_UTIL.FILE_WRITE 将buffer中的数据写入到文件中。 PKG_UTIL.FILE_WRITELINE 将buffer写入文件,并追加换行符。 PKG_UTIL.FILE_NEWLINE 新起一行。 PKG_UTIL.FILE_READ_RAW 从一个打开的文件句柄中读取指定长度的二进制数据。 PKG_UTIL.FILE_WRITE_RAW 将二进制数据写入到文件中。 PKG_UTIL.FILE_FLUSH 将一个文件句柄中的数据写入到物理文件中。 PKG_UTIL.FILE_CLOSE 关闭一个打开的文件句柄。 PKG_UTIL.FILE_REMOVE 删除一个物理文件,操作需要有对应权限。 PKG_UTIL.FILE_RENAME 对于磁盘上的文件进行重命名,类似UNIX的mv。 PKG_UTIL.FILE_SIZE 返回文件大小。 PKG_UTIL.FILE_BLOCK_SIZE 返回文件含有的块数量。 PKG_UTIL.FILE_EXISTS 判断文件是否存在。 PKG_UTIL.FILE_GETPOS 返回文件的偏移量,单位字节。 PKG_UTIL.FILE_SEEK 设置文件位置为指定偏移。 PKG_UTIL.FILE_CLOSE_ALL 关闭一个会话中打开的所有文件句柄。 PKG_UTIL.EXCEPTION_REPORT_ERROR 抛出一个异常。 PKG_UTIL.LOB_RAWTOTEXT RAW类型转成TEXT类型。 PKG_UTIL.UTILITY_COMPILE_SCHEMA 重编译指定Schema、PACKAGE、函数和存储过程。当编译到的PL/SQL对象遇到报错时,将直接返回,不再继续编译。该PACKAGE已废弃。推荐使用pkg_util.gs_compile_schema。 PKG_UTIL.GS_COMPILE_SCHEMA 重编译指定Schema、PACKAGE、函数和存储过程。当编译遇到PL/SQL对象报错时,异常将会被捕获,继续编译其它对象,直到全部对象编译成功或者到达尝试次数后停止。通过jdbc执行该高级包,sqlstate会打印00000错误码,00000错误码代表成功完成,错误码说明请参见《错误码参考》文档中的“SQL标准错误码说明”。 PKG_UTIL.APP_SET_MODULE 设置module的值。 PKG_UTIL.APP_READ_MODULE 读取module的值。 PKG_UTIL.APP_SET_ACTION 设置action的值。 PKG_UTIL.APP_READ_ACTION 读取action的值。 PKG_UTIL.MODIFY_PACKAGE_STATE 用于修改当前会话的PL/SQL的状态。 PKG_UTIL.LOB_GET_LENGTH 该函数LOB_GET_LENGTH获取输入数据的长度。 PKG_UTIL.LOB_GET_LENGTH函数原型为: 123456789 PKG_UTIL.LOB_GET_LENGTH(lob IN CLOB)RETURN INTEGER;PKG_UTIL.LOB_GET_LENGTH(lob IN BLOB)RETURN INTEGER; 表2 PKG_UTIL.LOB_GET_LENGTH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob CLOB/BLOB IN 否 待获取长度的对象。 PKG_UTIL.LOB_READ 该函数LOB_READ读取一个对象,并返回指定部分。 PKG_UTIL.LOB_READ函数原型为: 1234567 PKG_UTIL.LOB_READ(lob IN ANYELEMENT,len IN INT,start IN INT,mode IN INT)RETURN ANYELEMENT 表3 PKG_UTIL.LOB_READ接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob CLOB/BLOB IN 否 CLOB或者BLOB类型数据。 len INT IN 否 返回结果长度。 start INT IN 否 相较于第一个字符的偏移量。 mode INT IN 否 判断读取操作的类型, 0 :read; 1 : trim; 2 : substr。 PKG_UTIL.LOB_WRITE 该函数LOB_WRITE将源对象按照指定的参数写入目标对象,并返回目标对象。 PKG_UTIL.LOB_WRITE函数原型为: 1 2 3 4 5 6 7 8 91011121314 PKG_UTIL.LOB_WRITE(dest_lob INOUT BLOB,src_lob IN RAWlen IN INT,start_pos IN BIGINT)RETURN BLOB;PKG_UTIL.LOB_WRITE(dest_lob INOUT CLOB,src_lob IN VARCHAR2len IN INT,start_pos IN BIGINT)RETURN CLOB; 表4 PKG_UTIL.LOB_WRITE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob CLOB/BLOB INOUT 否 写入的目标对象。 src_lob CLOB/BLOB IN 否 被写入的源对象。 len INT IN 否 源对象的写入长度。 start_pos BIGINT IN 否 目标对象的写入起始位置。 PKG_UTIL.LOB_APPEND 该函数LOB_APPEND将源BLOB/CLOB对象追加到目标BLOB/CLOB对象, 并返回目标对象。 PKG_UTIL.LOB_APPEND函数原型为: 1 2 3 4 5 6 7 8 910111213 PKG_UTIL.LOB_APPEND(dest_lob INOUT BLOB,src_lob IN BLOB,len IN INT DEFAULT NULL)RETURN BLOB;PKG_UTIL.LOB_APPEND(dest_lob INOUT CLOB,src_lob IN CLOB,len IN INT DEFAULT NULL)RETURN CLOB; 表5 PKG_UTIL.LOB_APPEND接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB/CLOB INOUT 否 写入的目标BLOB/CLOB对象。 src_lob BLOB/CLOB IN 否 被写入的源BLOB/CLOB对象。 len INT IN 是 src中读取并append到dest上的长度,默认NULL,将src全部append上去。 PKG_UTIL.LOB_COMPARE 该函数LOB_COMPARE按照指定的起始位置、个数比较对象是否相同,lob1大则返回1,lob2大返回-1,相等返回0。 PKG_UTIL.LOB_COMPARE函数原型为: 12345678 PKG_UTIL.LOB_COMPARE(lob1 IN ANYELEMENT,lob2 IN ANYELEMENT,len IN INT DEFAULT 1073741771,start_pos1 IN INT DEFAULT 1,start_pos2 IN INT DEFAULT 1)RETURN INTEGER; 表6 PKG_UTIL.LOB_COMPARE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob1 CLOB/BLOB IN 否 待比较的字符串。 lob2 CLOB/BLOB IN 否 待比较的字符串。 len INT IN 否 比较的长度。 start_pos1 INT IN 否 lob1起始偏移量。 start_pos2 INT IN 否 lob2起始偏移量。 PKG_UTIL.LOB_MATCH 该函数LOB_MATCH返回pattern出现在lob对象中第match_nth次的位置。 PKG_UTIL.LOB_MATCH函数原型为: 1234567 PKG_UTIL.LOB_MATCH(lob IN ANYELEMENT,pattern IN ANYELEMENT,start IN INT,match_nth IN INT DEFAULT 1)RETURN INTEGER; 表7 PKG_UTIL.LOB_MATCH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob CLOB/BLOB IN 否 待比较的字符串。 pattern CLOB/BLOB IN 否 待匹配的pattern。 start INT IN 否 lob的起始比较位置。 match_nth INT IN 否 第几次匹配到。 PKG_UTIL.LOB_RESET 该函数LOB_RESET清除一段数据为字符value。 PKG_UTIL.LOB_RESET函数原型为: 1234567 PKG_UTIL.LOB_RESET(lob IN BLOB,len IN INT,start IN INT,value IN INT DEFAULT 0)RETURN RECORD; 表8 PKG_UTIL.LOB_RESET接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob BLOB IN 否 待重置的字符串。 len INT IN 否 重置的长度。 start INT IN 否 重置的起始位置。 value INT IN 是 设置的字符。默认值‘0’。 PKG_UTIL.LOB_GET_LENGTH 该函数获取并返回指定的LOB类型对象的长度。 PKG_UTIL.LOB_GET_LENGTH函数原型为: 1234567 PKG_UTIL.LOB_GET_LENGTH( lob IN BLOB)RETURN BIGINT;PKG_UTIL.LOB_GET_LENGTH( lob IN CLOB)RETURN BIGINT; 表9 PKG_UTIL.LOB_GET_LENGTH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob BLOB/CLOB IN 否 指定的LOB类型对象。 PKG_UTIL.LOB_READ_HUGE 根据指定的长度及起始位置偏移读取LOB内容的一部分,并返回读取到的LOB和长度。 PKG_UTIL.LOB_READ_HUGE函数原型为: 1 2 3 4 5 6 7 8 91011121314151617181920 PKG_UTIL.LOB_READ_HUGE( lob IN CLOB, len IN BIGINT, start_pos IN BIGINT, mode IN INTEGER)RETURN RECORD;PKG_UTIL.LOB_READ_HUGE( lob IN BLOB, len IN BIGINT, start_pos IN BIGINT, mode IN INTEGER)RETURN RECORD;PKG_UTIL.LOB_READ_HUGE( fd IN INTEGER, len IN BIGINT, start_pos IN BIGINT, mode IN INTEGER)RETURN RECORD; 表10 PKG_UTIL.LOB_READ_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob/fd BLOB/CLOB/INTEGER IN 否 指定的LOB类型对象/BFILE文件的文件描述符。 len BIGINT IN 否 读取长度。 start_pos BIGINT IN 否 读取起始偏移位置。 mode INTEGER IN 否 read模式(0代表read、1代表trim、2代表substr)。 PKG_UTIL.LOB_WRITEAPPEND_HUGE 该函数LOB_WRITEAPPEND_HUGE将源BLOB/CLOB对象读取指定长度内容,并追加到目标BLOB/CLOB对象, 并返回目标对象。 PKG_UTIL.LOB_WRITEAPPEND_HUGE函数原型为: 1 2 3 4 5 6 7 8 91011 PKG_UTIL.LOB_WRITEAPPEND_HUGE( dest_lob INOUT CLOB, len IN INTEGER, src_lob IN VARCHAR2)RETURN CLOB;PKG_UTIL.LOB_WRITEAPPEND_HUGE( dest_lob INOUT BLOB, len IN INTEGER, src_lob IN RAW)RETURN BLOB; 表11 PKG_UTIL.LOB_WRITEAPPEND_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB/CLOB INOUT 否 写入的目标BLOB/CLOB对象。 len INTEGER IN 是 写入源对象的长度,为NULL则默认写入源对象全部。 src_lob VARCHAR2/RAW IN 否 被写入的源BLOB/CLOB对象。 PKG_UTIL.LOB_APPEND_HUGE 该函数LOB_APPEND_HUGE将源BLOB/CLOB对象追加到目标BLOB/CLOB对象, 并返回目标对象。 PKG_UTIL.LOB_APPEND_HUGE函数原型为: 1234 PKG_UTIL.LOB_APPEND_HUGE( dest_lob INOUT BLOB, src_lob IN BLOB)RETURN BLOB; 1234 PKG_UTIL.LOB_APPEND_HUGE( dest_lob INOUT CLOB, src_lob IN CLOB)RETURN CLOB; 表12 PKG_UTIL.LOB_APPEND_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB/CLOB INOUT 否 写入的目标BLOB/CLOB对象。 src_lob BLOB/CLOB IN 否 被写入的源BLOB/CLOB对象。 PKG_UTIL.READ_BFILE_TO_BLOB 该函数READ_BFILE_TO_BLOB将源BFILE文件读取成目标BLOB对象, 并返回目标对象。 PKG_UTIL.READ_BFILE_TO_BLOB函数原型为: 123 PKG_UTIL.READ_BFILE_TO_BLOB( fd IN INTEGER)RETURN BLOB; 表13 PKG_UTIL.READ_BFILE_TO_BLOB接口参数说明 参数 类型 入参/出参 是否可以为空 描述 fd INTEGER IN 否 读取的源BFILE文件。 PKG_UTIL.LOB_COPY_HUGE 该函数LOB_COPY_HUGE将源BLOB/CLOB对象,从指定偏移读取指定长度内容,写入到目标BLOB/CLOB对象的指定偏移位置, 并返回目标对象。 PKG_UTIL.LOB_COPY_HUGE函数原型为: 1 2 3 4 5 6 7 8 9101112131415 PKG_UTIL.LOB_COPY_HUGE( lob_obj INOUT BLOB, source_obj IN BLOB, amount IN BIGINT, dest_offset IN BIGINT DEFAULT 1, src_offset IN BIGINT DEFAULT 1 )RETURN BLOB;PKG_UTIL.LOB_COPY_HUGE( lob_obj INOUT CLOB, source_obj IN CLOB, amount IN BIGINT, dest_offset IN BIGINT DEFAULT 1, src_offset IN BIGINT DEFAULT 1 )RETURN CLOB; 表14 PKG_UTIL.LOB_COPY_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob_obj BLOB/CLOB INOUT 否 目标BLOB/CLOB对象。 source_obj BLOB/CLOB IN 否 源BLOB/CLOB对象。 amount BIGINT IN 否 复制的长度(BLOB以字节为单位,CLOB以字符为单位)。 dest_offset BIGINT IN 否 目标LOB的载入偏移位置。 src_offset BIGINT IN 否 源LOB的读取偏移位置。 PKG_UTIL.BLOB_RESET 该函数将BLOB中一段数据set为value值,返回处理后的BLOB以及实际处理的长度。 PKG_UTIL.BLOB_RESET函数原型为: 123456 PKG_UTIL.BLOB_RESET( lob INOUT BLOB, len INOUT BIGINT, start_pos IN BIGINT DEFAULT 1, value IN INTEGER DEFAULT 0)RETURN RECORD; 表15 PKG_UTIL.BLOB_RESET接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob BLOB INOUT 否 待重置的LOB。 len INTEGER INOUT 否 重置的长度,单位字节。 start INTEGER IN 否 重置的起始位置。 value INTEGER IN 是 设置的字符。默认值‘0’。 PKG_UTIL.CLOB_RESET 该函数将一段数据set为空格。 PKG_UTIL.CLOB_RESET函数原型为: 12345 PKG_UTIL.CLOB_RESET( lob INOUT CLOB, len INOUT BIGINT, start_pos IN BIGINT DEFAULT 1)RETURN RECORD; 表16 PKG_UTIL.CLOB_RESET接口参数说明 参数 类型 入参/出参 是否可以为空 描述 lob CLOB INOUT 否 待重置的LOB。 len INTEGER INOUT 否 重置的长度,单位字符。 start INTEGER IN 否 重置的起始位置,默认为1。 PKG_UTIL.LOADBLOBFROMFILE 该函数LOADBLOBFROMFILE将源BFILE对象,从指定偏移读取指定长度内容,写入到目标BLOB对象的指定偏移位置, 并返回目标对象、读取位置和写入位置。 PKG_UTIL.LOADBLOBFROMFILE函数原型为: 1234567 PKG_UTIL.LOADBLOBFROMFILE( dest_lob INOUT BLOB, fd IN INTEGER, amount IN BIGINT, dest_offset INOUT BIGINT, file_offset INOUT BIGINT)RETURN RECORD; 表17 PKG_UTIL.LOADBLOBFROMFILE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB INOUT 否 IN参数为目标BLOB对象,OUT参数为写入后的目标BLOB对象。 fd INTEGER IN 否 源BFILE对象的文件描述符。 amount BIGINT IN 否 复制的长度(BLOB以字节为单位,CLOB以字符为单位)。 dest_offset BIGINT INOUT 否 IN参数为目标LOB的写入偏移位置,OUT参数为实际写入位置。 src_offset BIGINT INOUT 否 IN参数为源BFILE的读取偏移位置,OUT参数为实际读取位置。 PKG_UTIL.LOADCLOBFROMFILE 该函数LOADCLOBFROMFILE将源BFILE对象,从指定偏移读取指定长度内容,写入到目标CLOB对象的指定偏移位置, 并返回目标对象,读取位置,写入位置。 PKG_UTIL.LOADCLOBFROMFILE函数原型为: 1234567 PKG_UTIL.LOADCLOBFROMFILE( dest_lob INOUT CLOB, fd IN INTEGER, amount IN BIGINT, dest_offset INOUT BIGINT, file_offset INOUT BIGINT)RETURN RECORD; 表18 PKG_UTIL.LOADCLOBFROMFILE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob CLOB INOUT 否 IN参数为目标CLOB对象,OUT参数为写入后的目标CLOB对象。 fd INTEGER IN 否 源BFILE对象的文件描述符。 amount BIGINT IN 否 复制的长度(CLOB以字符为单位)。 dest_offset BIGINT INOUT 否 IN参数为目标LOB的写入偏移位置,OUT参数为实际写入位置。 src_offset BIGINT INOUT 否 IN参数为源BFILE的读取偏移位置,OUT参数为实际读取位置。 PKG_UTIL.LOB_CONVERTTOBLOB_HUGE 将src_clob从指定偏移位置读取指定长度内容转成BLOB,并写入dest_lob的指定位置,amount为要转换的长度。 PKG_UTIL.LOB_CONVERTTOBLOB_HUGE函数原型为: 1234567 PKG_UTIL.LOB_CONVERTTOBLOB_HUGE( dest_lob INOUT BLOB, src_clob IN CLOB, amount IN BIGINT, dest_offset INOUT BIGINT, src_offset INOUT BIGINT))RETURN RECORD; 表19 PKG_UTIL.LOB_CONVERTTOBLOB_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB INOUT 否 目标LOB。 src_clob CLOB IN 否 要转换的CLOB。 amount BIGINT IN 否 转换的长度,字符为单位。 dest_offset BIGINT INOUT 否 IN参数为目标LOB的写入起始位置,OUT参数为实际的写入位置。 src_offset BIGINT INOUT 否 IN参数为源CLOB的读取起始位置,OUT参数为实际的读取起始位置。 PKG_UTIL.LOB_CONVERTTOCLOB_HUGE 将src_clob从指定偏移位置读取指定长度内容转成CLOB,并写入dest_lob的指定位置,amount为要转换的长度。 PKG_UTIL.LOB_CONVERTTOCLOB_HUGE函数原型为: 1234567 PKG_UTIL.LOB_CONVERTTOCLOB_HUGE( dest_lob INOUT CLOB, src_blob IN BLOB, amount IN BIGINT, dest_offset INOUT BIGINT, src_offset INOUT BIGINT))RETURN RECORD; 表20 PKG_UTIL.LOB_CONVERTTOCLOB_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob CLOB INOUT 否 目标LOB。 src_blob BLOB IN 否 要转换的BLOB。 amount BIGINT IN 否 转换的长度,字节为单位。 dest_offset BIGINT INOUT 否 IN参数为目标LOB的写入起始位置,OUT参数为实际的写入位置。 src_offset BIGINT INOUT 否 IN参数为源CLOB的读取起始位置,OUT参数为实际的读取起始位置。 PKG_UTIL.BFILE_GET_LENGTH 该函数获取并返回指定的BFILE文件的长度。 PKG_UTIL.BFILE_GET_LENGTH函数原型为: 123 PKG_UTIL.BFILE_GET_LENGTH( fd INTEGER)RETURN BIGINT; 表21 PKG_UTIL.LOB_GET_LENGTH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 fd INTEGER IN 否 指定的BFILE文件的文件描述符。 PKG_UTIL.BFILE_OPEN 该函数打开BFILE文件,返回文件描述符。 PKG_UTIL.BFILE_OPEN函数原型为: 1234 PKG_UTIL.BFILE_OPEN( file_name TEXT, open_mode TEXT)RETURN INTEGER; 表22 PKG_UTIL.BFILE_OPEN接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file_name TEXT IN 否 指定的BFILE文件的文件name。 open_mode TEXT IN 否 打开方式(只支持‘r’,read功能) PKG_UTIL.BFILE_CLOSE 该函数关闭打开的BFILE文件。 PKG_UTIL.BFILE_CLOSE函数原型为: 123 PKG_UTIL.BFILE_CLOSE( fd INTEGER)RETURN BOOL; 表23 PKG_UTIL.BFILE_CLOSE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 fd INTEGER IN 否 指定的BFILE文件的文件描述符。 PKG_UTIL.LOB_WRITE_HUGE 将源对象从起始位置读取len长度内容,写入目标LOB对象的指定偏移位置,覆盖该位置原内容, 并返回目标LOB对象。 PKG_UTIL.LOB_WRITE_HUGE函数原型为: 1 2 3 4 5 6 7 8 910111213 PKG_UTIL.LOB_WRITE_HUGE( dest_lob INOUT BLOB, len IN INTEGER, start_pos IN BIGINT, src_lob IN RAW)RETURN BLOB;PKG_UTIL.LOB_WRITE_HUGE( dest_lob INOUT CLOB, len IN INTEGER, start_pos IN BIGINT, src_lob IN VARCHAR2)RETURN CLOB; 表24 PKG_UTIL.LOB_WRITE_HUGE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB/CLOB INOUT 否 IN参数为待写入的目标LOB,OUT参数为写入内容后的LOB。 len INTEGER IN 否 待写入的长度(BLOB以字节为单位,CLOB以字符为单位)。 start_pos BIGINT IN 否 在dest_lob中写入的偏移位置。 src_lob RAW/VARCHAR2 IN 否 源LOB对象。 PKG_UTIL.IO_PRINT 该函数IO_PRINT将一段字符串打印输出。 PKG_UTIL.IO_PRINT函数原型为: 12345 PKG_UTIL.IO_PRINT(format IN TEXT,is_one_line IN BOOLEAN)RETURN VOID; 表25 PKG_UTIL.IO_PRINT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 format TEXT IN 否 待打印输出的字符串。 is_one_line BOOLEAN IN 否 是否输出为一行。 PKG_UTIL.RAW_GET_LENGTH 该函数RAW_GET_LENGTH获取raw的长度。 PKG_UTIL.RAW_GET_LENGTH函数原型为: 1234 PKG_UTIL.RAW_GET_LENGTH(value IN RAW)RETURN INTEGER; 表26 PKG_UTIL.RAW_GET_LENGTH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 raw RAW IN 否 待获取长度的对象。 PKG_UTIL.RAW_CAST_FROM_VARCHAR2 该函数RAW_CAST_FROM_VARCHAR2将VARCHAR2转化为RAW。 PKG_UTIL.RAW_CAST_FROM_VARCHAR2函数原型为: 1234 PKG_UTIL.RAW_CAST_FROM_VARCHAR2(str IN VARCHAR2)RETURN RAW; 表27 PKG_UTIL.RAW_CAST_FROM_VARCHAR2接口参数说明 参数 类型 入参/出参 是否可以为空 描述 str VARCHAR2 IN 否 需要转化的源数据。 PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER 该函数RAW_CAST_FROM_BINARY_INTEGER将BIGINT转化为RAW。 PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER函数原型为: 12345 PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER(value IN BIGINT,endianess IN INTEGER)RETURN RAW; 表28 PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER接口参数说明 参数 类型 入参/出参 是否可以为空 描述 value BIGINT IN 否 需要转化的源数据。 endianess INTEGER IN 否 表示字典序的整型值,现支持1或2或3(1代表BIG_ENDIAN,2代表LITTLE_ENDIAN,3代表MACHINE_ENDIAN)。 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER 该函数RAW_CAST_TO_BINARY_INTEGER将RAW转化为BINARY_INTEGER。 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER函数原型为: 12345 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER(value IN RAW,endianess IN INTEGER)RETURN INTEGER; 表29 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER接口参数说明 参数 类型 入参/出参 是否可以为空 描述 value RAW IN 否 需要转化的源数据。 endianess INTEGER IN 否 表示字典序的整型值,现支持1或2或3(1代表BIG_ENDIAN,2代表LITTLE_ENDIAN,3代表MACHINE_ENDIAN)。 PKG_UTIL.RANDOM_SET_SEED 该函数RANDOM_SET_SEED设置随机数种子。 PKG_UTIL.RANDOM_SET_SEED函数原型为: 1234 PKG_UTIL.RANDOM_SET_SEED(seed IN INT)RETURN INTEGER; 表30 PKG_UTIL.RANDOM_SET_SEED接口参数说明 参数 类型 入参/出参 是否可以为空 描述 seed INT IN 否 随机数种子。 PKG_UTIL.RANDOM_GET_VALUE 该函数RANDOM_GET_VALUE返回0~1区间的一个随机数,其有效数字为15位。 PKG_UTIL.RANDOM_GET_VALUE函数原型为: 123 PKG_UTIL.RANDOM_GET_VALUE()RETURN NUMERIC; PKG_UTIL.FILE_SET_DIRNAME 设置当前操作的目录,基本上所有涉及单个目录的操作,都需要调用此方法先设置操作的目录。 PKG_UTIL.FILE_SET_DIRNAME函数原型为: 1234 PKG_UTIL.FILE_SET_DIRNAME(dir IN TEXT)RETURN BOOL 表31 PKG_UTIL.FILE_SET_DIRNAME接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dir TEXT IN 否 文件的目录位置,这个字符串是一个目录对象名。 说明: 文件目录的位置,需要添加到系统表PG_DIRECTORY中,如果传入的路径和PG_DIRECTORY中的路径不匹配,会报路径不存在的错误,下面的涉及location作为参数的函数也是同样的情况。 PKG_UTIL.FILE_OPEN 该函数用来打开一个文件,最多可以同时打开50个文件。并且该函数返回INTEGER类型的一个句柄。 PKG_UTIL.FILE_OPEN函数原型为: 123 PKG_UTIL.FILE_OPEN(file_name IN TEXT, open_mode IN INTEGER) 表32 PKG_UTIL.FILE_OPEN接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file_name TEXT IN 否 文件名,包含扩展(文件类型),不包括路径名。如果文件名中包含路径,在OPEN中会被忽略,在UNIX系统中,文件名不能以/.结尾。 open_mode INTEGER IN 否 指定文件的打开模式,包含r:read text,w: write text和a: append text。 说明: 对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。 PKG_UTIL.FILE_SET_MAX_LINE_SIZE 设置写入文件一行的最大长度。 PKG_UTIL.FILE_SET_MAX_LINE_SIZE函数原型为: 123 PKG_UTIL.FILE_SET_MAX_LINE_SIZE(max_line_size IN INTEGER)RETURN BOOL 表33 PKG_UTIL.FILE_SET_MAX_LINE_SIZE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 max_line_size INTEGER IN 是 每行最大字符数,包含换行符(最小值是1,最大值是32767)。如果没有指定,会指定一个默认值1024。 PKG_UTIL.FILE_IS_CLOSE 检测一个文件句柄是否关闭。 PKG_UTIL.FILE_IS_CLOSE函数原型为: 1234 PKG_UTIL.FILE_IS_CLOSE(file IN INTEGER)RETURN BOOL 表34 PKG_UTIL.FILE_IS_CLOSE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 PKG_UTIL.FILE_READ 根据指定的长度从一个打开的文件句柄中读取出数据。 PKG_UTIL.FILE_READ函数原型为: 1234 PKG_UTIL.FILE_READ(file IN INTEGER,buffer OUT TEXT,len IN BIGINT DEFAULT 1024) 表35 PKG_UTIL.FILE_READ接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 通过调用OPEN打开的文件句柄,文件必须以读的模式打开,否则会抛出INVALID_OPERATION的异常。 buffer TEXT OUT 否 用于接收数据的BUFFER。 len BIGINT IN 否 从文件中读取的字节数。 PKG_UTIL.FILE_READLINE 根据指定的长度从一个打开的文件句柄中读取出一行数据。 PKG_UTIL.FILE_READLINE函数原型为: 1234 PKG_UTIL.FILE_READLINE(file IN INTEGER,buffer OUT TEXT,len IN INTEGER DEFAULT NULL) 表36 PKG_UTIL.FILE_READLINE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 通过调用OPEN打开的文件句柄,文件必须以读的模式打开,否则会抛出INVALID_OPERATION的异常。 buffer TEXT OUT 否 用于接收数据的BUFFER。 len INTEGER IN 是 从文件中读取的字节数,默认是NULL。如果是默认NULL,会使用max_line_size来指定大小。 PKG_UTIL.FILE_WRITE 将BUFFER中指定的数据写入到文件中。 PKG_UTIL.FILE_WRITE函数原型为: 12345 PKG_UTIL.FILE_WRITE(file IN INTEGER,buffer IN TEXT)RETURN BOOL 表37 PKG_UTIL.FILE_WRITE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 buffer TEXT IN 否 要写入文件的文本数据,BUFFER的最大值是32767个字节。如果没有指定值,默认是1024个字节,没有刷新到文件之前,一系列的PUT操作的BUFFER总和不能超过32767个字节。 说明: 对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。 PKG_UTIL.FILE_NEWLINE 向一个打开的文件中写入一个行终结符。行终结符和平台相关。 PKG_UTIL.FILE_NEWLINE函数原型为: 1234 PKG_UTIL.FILE_NEWLINE(file IN INTEGER)RETURN BOOL 表38 PKG_UTIL.FILE_NEWLINE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 PKG_UTIL.FILE_WRITELINE 向一个打开的文件中写入一行。 PKG_UTIL.FILE_WRITELINE函数原型为: 12345 PKG_UTIL.FILE_WRITELINE(file IN INTEGER,buffer IN TEXT)RETURN BOOL 表39 PKG_UTIL.FILE_WRITELINE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 buffer TEXT IN 否 要写入的内容 PKG_UTIL.FILE_READ_RAW 从一个打开的文件句柄中读取指定长度的二进制数据,返回读取的二进制数据,返回类型为raw。 PKG_UTIL.FILE_READ_RAW函数原型为: 12345 PKG_UTIL.FILE_READ_RAW(file IN INTEGER,length IN INTEGER DEFAULT NULL)RETURN RAW 表40 PKG_UTIL.FILE_READ_RAW接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 length INTEGER IN 是 要读取的长度,默认为NULL。默认情况下读取文件中所有数据,最大为1G。 PKG_UTIL.FILE_WRITE_RAW 向一个打开的文件中写入传入二进制对象RAW。插入成功返回true。 PKG_UTIL.FILE_WRITE_RAW函数原型为: 12345 PKG_UTIL.FILE_WRITE_RAW(file IN INTEGER,r IN RAW)RETURN BOOL 表41 PKG_UTIL.FILE_WRITE_RAW接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 r RAW IN 否 准备传入文件的数据 说明: 对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。 PKG_UTIL.FILE_FLUSH 一个文件句柄中的数据要写入到物理文件中,缓冲区中的数据必须要有一个行终结符。当文件必须在打开时读取,刷新非常有用。例如,调试信息可以刷新到文件中,以便立即读取。 PKG_UTIL.FILE_FLUSH函数原型为: 1234 PKG_UTIL.FILE_FLUSH(file IN INTEGER)RETURN VOID 表42 PKG_UTIL.FILE_FLUSH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 PKG_UTIL.FILE_CLOSE 关闭一个打开的文件句柄。 PKG_UTIL.FILE_CLOSE函数原型为: 1234 PKG_UTIL.FILE_CLOSE(file IN INTEGER)RETURN BOOL 表43 PKG_UTIL.FILE_CLOSE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 PKG_UTIL.FILE_REMOVE 删除一个磁盘文件,操作的时候需要有充分的权限。 PKG_UTIL.FILE_REMOVE函数原型为: 1234 PKG_UTIL.FILE_REMOVE(file_name IN TEXT)RETURN VOID 表44 PKG_UTIL.FILE_REMOVE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 filen_ame TEXT IN 否 要删除的文件名 PKG_UTIL.FILE_RENAME 对于磁盘上的文件进行重命名,类似Unix的mv。 PKG_UTIL.FILE_RENAME函数原型为: 123456 PKG_UTIL.FILE_RENAME(src_dir IN TEXT, src_file_name IN TEXT, dest_dir IN TEXT, dest_file_name IN TEXT, overwrite BOOLEAN DEFAULT false) 表45 PKG_UTIL.FILE_RENAME接口参数说明 参数 类型 入参/出参 是否可以为空 描述 src_dir TEXT IN 否 源文件目录(大小写敏感)。 说明: 文件目录的位置,需要添加到系统表PG_DIRECTORY中,如果传入的路径和PG_DIRECTORY中的路径不匹配,会报路径不存在的错误。 在打开guc参数safe_data_path时,用户只能通过高级包操作safe_data_path指定文件路径下的文件。 src_file_name TEXT IN 否 源文件名。 dest_dir TEXT IN 否 目标文件目录(大小写敏感)。 说明: 文件目录的位置,需要添加到系统表PG_DIRECTORY中,如果传入的路径和PG_DIRECTORY中的路径不匹配,会报路径不存在的错误。 在打开guc参数safe_data_path时,用户只能通过高级包操作safe_data_path指定文件路径下的文件。 dest_file_name TEXT IN 否 目标文件名。 overwrite BOOLEAN IN 是 默认是false,如果目的目录下存在一个同名的文件,不会进行重写。 PKG_UTIL.FILE_SIZE 返回指定的文件大小。 PKG_UTIL.FILE_SIZE函数原型为: 123 bigint PKG_UTIL.FILE_SIZE(file_name IN TEXT)return BIGINT 表46 PKG_UTIL.FILE_SIZE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file_name TEXT IN 否 文件名 PKG_UTIL.FILE_BLOCK_SIZE 返回指定的文件含有的块数量。 PKG_UTIL.FILE_BLOCK_SIZE函数原型为: 123 bigint PKG_UTIL.FILE_BLOCK_SIZE(file_name IN TEXT)return BIGINT 表47 PKG_UTIL.FILE_BLOCK_SIZE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file_name TEXT IN 否 文件名 PKG_UTIL.FILE_EXISTS 判断指定的文件是否存在。 PKG_UTIL.FILE_EXISTS函数原型为: 1234 PKG_UTIL.FILE_EXISTS(file_name IN TEXT)RETURN BOOL 表48 PKG_UTIL.FILE_EXISTS接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file_name TEXT IN 否 文件名 PKG_UTIL.FILE_GETPOS 返回文件的偏移量,单位字节。 PKG_UTIL.FILE_GETPOS函数原型为: 1234 PKG_UTIL.FILE_GETPOS(file IN INTEGER )RETURN BIGINT 表49 PKG_UTIL.FILE_GETPOS接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 PKG_UTIL.FILE_SEEK 根据用户指定的字节数向前或者向后调整文件指针的位置。 PKG_UTIL.FILE_SEEK函数原型为: 12345 void PKG_UTIL.FILE_SEEK(file IN INTEGER,start IN BIGINT)RETURN VOID 表50 PKG_UTIL.FILE_SEEK接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 start BIGINT IN 否 文件偏移,字节。 PKG_UTIL.FILE_CLOSE_ALL 关闭一个会话中打开的所有的文件句柄。 PKG_UTIL.FILE_CLOSE_ALL函数原型为: PKG_UTIL.FILE_CLOSE_ALL()RETURN VOID 表51 PKG_UTIL.FILE_CLOSE_ALL接口参数说明 参数 类型 入参/出参 是否可以为空 描述 无 无 无 无 无 PKG_UTIL.EXCEPTION_REPORT_ERROR 抛出一个异常。 PKG_UTIL.EXCEPTION_REPORT_ERROR函数原型为: 123456 PKG_UTIL.EXCEPTION_REPORT_ERROR(code INTEGER,log TEXT,flag BOOLEAN DEFAULT FALSE)RETURN INTEGER 表52 PKG_UTIL.EXCEPTION_REPORT_ERROR接口参数说明 参数 类型 入参/出参 是否可以为空 描述 code INTEGER IN 否 运行异常所打印的错误码。 log TEXT IN 否 运行异常所打印的日志提示信息。 flag BOOLEAN IN 是 保留字段,默认为FALSE。 PKG_UTIL.APP_READ_CLIENT_INFO 读取client_info信息 PKG_UTIL.APP_READ_CLIENT_INFO函数原型为: 123 PKG_UTIL.APP_READ_CLIENT_INFO(OUT buffer TEXT)return TEXT 表53 PKG_UTIL.APP_READ_CLIENT_INFO接口参数说明 参数 类型 入参/出参 是否可以为空 描述 buffer TEXT OUT 否 返回的client_info信息 PKG_UTIL.APP_SET_CLIENT_INFO 设置client_info信息 PKG_UTIL.APP_SET_CLIENT_INFO函数原型为: 123 PKG_UTIL.APP_SET_CLIENT_INFO(str TEXT) 表54 PKG_UTIL.APP_SET_CLIENT_INFO接口参数说明 参数 类型 入参/出参 是否可以为空 描述 str TEXT IN 否 要设置的client_info信息 PKG_UTIL.LOB_CONVERTTOBLOB 将clob转成blob,amount为要转换的长度 PKG_UTIL.LOB_CONVERTTOBLOB函数原型为: 1234567 PKG_UTIL.LOB_CONVERTTOBLOB(dest_lob BLOB, src_clob CLOB, amount INTEGER, dest_offset INTEGER, src_offset INTEGER)return RAW 表55 PKG_UTIL.LOB_CONVERTTOBLOB接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob BLOB IN 否 目标LOB src_clob CLOB IN 否 要转换的CLOB amount INTEGER IN 否 转换的长度 dest_offset INTEGER IN 否 目标LOB的起始位置 src_offset INTEGER IN 否 源CLOB的起始位置 PKG_UTIL.lLOB_CONVERTTOCLOB 将BLOB转成CLOB,amount为要转换的长度 PKG_UTIL.LOB_CONVERTTOCLOB函数原型为: 1234567 PKG_UTIL.LOB_CONVERTTOCLOB(dest_lob CLOB, src_blob BLOB, amount INTEGER, dest_offset INTEGER, src_offset INTEGER)return TEXT 表56 PKG_UTIL.LOB_CONVERTTOCLOB接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob CLOB IN 否 目标LOB src_blob BLOB IN 否 要转换的BLOB amount INTEGER IN 否 转换的长度 dest_offset INTEGER IN 否 目标lob的起始位置 src_offset INTEGER IN 否 源clob的起始位置 PKG_UTIL.LOB_TEXTTORAW 将text转成raw PKG_UTIL.LOB_TEXTTORAW函数原型为: 1234 PKG_UTIL.LOB_TEXTTORAW(src_lob CLOB)RETURN RAW 表57 PKG_UTIL.LOB_TEXTTORAW接口参数说明 参数 类型 入参/出参 是否可以为空 描述 src_lob CLOB IN 否 要转换的LOB数据 PKG_UTIL.LOB_RAWTOTEXT 将RAW转成TEXT。 PKG_UTIL.LOB_RAWTOTEXT函数原型为: 1234 PKG_UTIL.LOB_RAWTOTEXT(src_lob IN BLOB)RETURN TEXT 表58 PKG_UTIL.LOB_RAWTOTEXT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 src_lob BLOB IN 否 要转换的LOB数据。 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY 计算两个字符串的差别 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY函数原型为: 12345 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY(str1 TEXT, str2 TEXT)RETURN INTEGER 表59 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY接口参数说明 参数 类型 入参/出参 是否可以为空 描述 str1 TEXT IN 否 第一个字符串 str2 TEXT IN 否 第二个字符串 PKG_UTIL.RAW_CAST_TO_VARCHAR2 raw类型转成varchar2。 PKG_UTIL.RAW_CAST_TO_VARCHAR2函数原型为: 1234 PKG_UTIL.RAW_CAST_TO_VARCHAR2(str RAW)RETURN VARCHAR2 表60 PKG_UTIL.RAW_CAST_TO_VARCHAR2接口参数说明 参数 类型 入参/出参 是否可以为空 描述 str RAW IN 否 十六进制字符串 PKG_UTIL.SESSION_CLEAR_CONTEXT 清除session_context信息 PKG_UTIL.SESSION_CLEAR_CONTEXT函数原型为: 123456 PKG_UTIL.SESSION_CLEAR_CONTEXT(namespace TEXT, client_identifier TEXT, attribute TEXT)RETURN INTEGER 表61 PKG_UTIL.SESSION_CLEAR_CONTEXT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 namespace TEXT IN 否 属性的命名空间 client_identifier TEXT IN 是 client_identifier,一般与namespace即可,当为null时,默认修改所有namesapce attribute TEXT IN 否 要清除的属性值 PKG_UTIL.SESSION_SEARCH_CONTEXT 查找属性值 PKG_UTIL.SESSION_SEARCH_CONTEXT函数原型为: 12345 PKG_UTIL.SESSION_SEARCH_CONTEXT(namespace TEXT, attribute TEXT)RETURN INTEGER 表62 PKG_UTIL.SESSION_SEARCH_CONTEXT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 namespace TEXT IN 否 属性的命名空间 attribute TEXT IN 否 要查找的属性值 PKG_UTIL.SESSION_SET_CONTEXT 设置属性值 PKG_UTIL.SESSION_SET_CONTEXT函数原型为: 123456 PKG_UTIL.SESSION_SET_CONTEXT(namespace TEXT, attribute TEXT,value TEXT)RETURN INTEGER 表63 PKG_UTIL.SESSION_SET_CONTEXT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 namespace TEXT IN 否 属性的命名空间 attribute TEXT IN 否 要设置的属性 value TEXT IN 否 属性对应的值 PKG_UTIL.UTILITY_GET_TIME 打印unix时间戳。 PKG_UTIL.UTILITY_GET_TIME函数原型为: 12 PKG_UTIL.UTILITY_GET_TIME()RETURN BIGINT PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE 查看存储过程的错误堆栈。 PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE函数原型为: 12 PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE()RETURN TEXT PKG_UTIL.UTILITY_FORMAT_ERROR_STACK 查看存储过程的报错信息。 PKG_UTIL.UTILITY_FORMAT_ERROR_STACK函数原型为: 12 PKG_UTIL.UTILITY_FORMAT_ERROR_STACK()RETURN TEXT PKG_UTIL.UTILITY_FORMAT_CALL_STACK 查看存储过程调用堆栈。 PKG_UTIL.UTILITY_FORMAT_CALL_STACK函数原型为: 12 PKG_UTIL.UTILITY_FORMAT_CALL_STACK()RETURN TEXT PKG_UTIL.UTILITY_COMPILE_SCHEMA 重编译指定schema中的包函数和存储过程。 PKG_UTIL.UTILITY_COMPILE_SCHEMA函数原型为: PKG_UTIL.UTILITY_COMPILE_SCHEMA (schema IN VARCHAR2,compile_all IN BOOLEAN DEFAULT TRUE,reuse_settings IN BOOLEAN DEFAULT FALSE)RETURNS VOID PKG_UTIL.GS_COMPILE_SCHEMA 重编译指定schema中的包函数和存储过程。 PKG_UTIL.GS_COMPILE_SCHEMA存储过程原型为: pkg_util.GS_COMPILE_SCHEMA (schema_name IN VARCHAR2 DEFAULT NULL,compile_all IN BOOLEAN DEFAULT FALSE,retry_times IN INT DEFAULT 10) 表64 PKG_UTIL.GS_COMPILE_SCHEMA接口参数说明 参数 类型 入参/出参 是否可以为空 描述 schema_name VARCHAR2 IN 是 命名空间的名称。 compile_all BOOLEAN IN 是 编译所有。 false:编译pg_object表中状态为false的包、函数、存储过程。 true:编译pg_object表中所有的包、函数、存储过程。 retry_times:重试次数。 PKG_UTIL.APP_SET_MODULE 设置module的值。 PKG_UTIL.APP_SET_MODULE存储过程原型为: PKG_UTIL.APP_SET_MODULE ( str TEXT)returns VOID 表65 PKG_UTIL.APP_SET_MODULE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 text TEXT IN 否 要设置module的值。 示例: CALL PKG_UTIL.APP_SET_MODULE('set module'); app_set_module ----------------(1 row) PKG_UTIL.APP_READ_MODULE 读取module的值。 PKG_UTIL.APP_READ_MODULE存储过程原型为: PKG_UTIL.APP_READ_MODULE(OUT buffer TEXT) 表66 PKG_UTIL.APP_READ_MODULE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 buffer TEXT OUT 否 返回的module的值。 示例: DECLARE module VARCHAR2(64);BEGINPKG_UTIL.APP_READ_MODULE(module); dbe_output.print_line(module);END;/set moduleANONYMOUS BLOCK EXECUTE PKG_UTIL.APP_SET_ACTION 设置action的值。 PKG_UTIL.APP_SET_ACTION存储过程原型为: PKG_UTIL.APP_SET_ACTION ( str TEXT)returns VOID 表67 PKG_UTIL.APP_SET_ACTION接口参数说明 参数 类型 入参/出参 是否可以为空 描述 text TEXT IN 否 要设置action的值。 示例: CALL PKG_UTIL.APP_SET_ACTION('set action'); app_set_action ----------------(1 row) PKG_UTIL.APP_READ_ACTION 读取action的值。 PKG_UTIL.APP_READ_ACTION存储过程原型为: PKG_UTIL.APP_READ_ACTION(OUT buffer TEXT) 表68 PKG_UTIL.APP_READ_ACTION接口参数说明 参数 类型 入参/出参 是否可以为空 描述 buffer TEXT OUT 否 返回的action的值。 示例: DECLARE action VARCHAR2(64);BEGINPKG_UTIL.APP_READ_ACTION(action); dbe_output.print_line(action);END;/set actionANONYMOUS BLOCK EXECUTE PKG_UTIL.MODIFY_PACKAGE_STATE 用于修改当前会话的PL/SQL的状态。 PKG_UTIL.MODIFY_PACKAGE_STATE存储过程原型为: PKG_UTIL.MODIFY_PACKAGE_STATE ( flags INT)returns VOID 表69 PKG_UTIL.MODIFY_PACKAGE_STATE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 flags INT IN 否 对PL/SQL采取的操作的位标志。 当flags=1时,在执行完最顶层的PL/SQL后,会释放会话中目前运行的PL/SQL的会话缓存。清除任何包全局的当前值并关闭缓存的游标。在后续使用时,PL/SQL将重新实例化,并重新初始化包全局。 不支持其他位标志。 示例: CALL PKG_UTIL.MODIFY_PACKAGE_STATE(1); modify_package_state ----------------------(1 row) 父主题: 基础接口
  • 接口介绍 高级功能包DBE_UTILITY支持的所有接口请参见表1。 表1 DBE_UTILITY 接口名称 描述 DBE_UTILITY.FORMAT_ERROR_BACKTRACE 输出存储过程异常的调用堆栈。 DBE_UTILITY.FORMAT_ERROR_STACK 输出存储过程异常的具体信息。 DBE_UTILITY.FORMAT_CALL_STACK 输出存储过程的调用堆栈。 DBE_UTILITY.GET_TIME 输出当前时间,一般用于做差得到执行时长。 DBE_UTILITY.CANONICALIZE 用于给表名字符串做规范。 DBE_UTILITY.COMMA_TO_TABLE 将用逗号隔开的名字列表的字符串转换为PL/SQL表名列表。 DBE_UTILITY.DB_VERSION 返回数据库的版本号和兼容性版本号。 DBE_UTILITY.EXEC_DDL_STATEMENT 用于执行用户输入的DDL语句。 DBE_UTILITY.EXPAND_SQL_TEXT_PROC 用于展开SQL查询的视图。 DBE_UTILITY.GET_CPU_TIME 返回当前CPU处理时间的测量值。 DBE_UTILITY.GET_ENDIANNESS 用于获取数据库所在平台字节序的大小端信息。 DBE_UTILITY.GET_HASH_VALUE 返回一个给定字符串的hash值。 DBE_UTILITY.GET_SQL_HASH 输出一个给定字符串的hash值,该存储过程在不打开proc_outparam_override时使用。 DBE_UTILITY.IS_BIT_SET 用于检查参数n是否存在于r。 DBE_UTILITY.IS_CLUSTER_DATABASE 用于判断当前数据库是否在数据库集群模式下运行。 DBE_UTILITY.NAME_RESOLVE 解析给定的对象名称,包括同义词翻译和必要的授权检查。 DBE_UTILITY.NAME_TOKENIZE 用于解析a [. b [. c ]][@ dblink ]形式的名字。 DBE_UTILITY.OLD_CURRENT_SCHEMA 返回当前用户环境下的数据库模式名称。 DBE_UTILITY.OLD_CURRENT_USER 返回当前用户的名称。 DBE_UTILITY.TABLE_TO_COMMA 将PL/SQL中的表名转换为用逗号隔开的名字列表的字符串。 DBE_UTILITY.GET_SQL_HASH_FUNC 功能同DBE_UTILITY.GET_SQL_HASH,该函数在打开proc_outparam_override时使用。 DBE_UTILITY.EXPAND_SQL_TEXT 内部函数,不建议用户使用。 DBE_UTILITY.CANONICALIZE_RET 内部函数,不建议用户使用。 DBE_UTILITY.COMMA_TO_TABLE_FUN 内部函数,不建议用户使用。 DBE_UTILITY.COMPILE_SCHEMA 内部函数,不建议用户使用,已废弃。 DBE_UTILITY.NAME_SEPARATE 内部函数,不建议用户使用。 DBE_UTILITY.NAME_TOKENIZE_FUNC 内部函数,不建议用户使用。 DBE_UTILITY.NAME_TOKENIZE_LOWER 内部函数,不建议用户使用。 DBE_UTILITY.NAME_TOKENIZE_LOWER_FUNC 内部函数,不建议用户使用。 DBE_UTILITY.PRIVILEGE_CHECK 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_CLASS_WITH_NSPOID_ONAME_TYPE 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_OBJE CTS 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_OBJECTS_SYNONYM_FILL_SECHEMA 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_PROCEDURE_WITH_NSPOID_ONAME 内部函数,不建议用户使用。 DBE_UTILITY.SEARCH_SYNONM_WITH_NSPOID_ONAME 内部函数,不建议用户使用。 DBE_UTILITY.TABLE_TO_COMMA_FUNC 内部函数,不建议用户使用。 DBE_UTILITY.USER_NAME 内部函数,不建议用户使用。 DBE_UTILITY.FORMAT_ERROR_BACKTRACE 存储过程FORMAT_ERROR_BACKTRACE返回在执行过程中出现错误时,出现错误位置的调用堆栈。DBE_UTILITY.FORMAT_ERROR_BACKTRACE函数原型为: 12 DBE_UTILITY.FORMAT_ERROR_BACKTRACE()RETURN TEXT; DBE_UTILITY.FORMAT_ERROR_STACK 存储过程FORMAT_ERROR_STACK返回在执行过程中出现错误时,出现错误位置的具体信息。DBE_UTILITY.FORMAT_ERROR_STACK函数原型为: 12 DBE_UTILITY.FORMAT_ERROR_STACK()RETURN TEXT; DBE_UTILITY.FORMAT_CALL_STACK 存储过程FORMAT_CALL_STACK设置输出函数调用堆栈。DBE_UTILITY.FORMAT_CALL_STACK函数原型为: 12 DBE_UTILITY.FORMAT_CALL_STACK()RETURN TEXT; DBE_UTILITY.GET_TIME 存储过程GET_TIME设置输出时间,通常用于做差,单独的返回值没有意义。DBE_UTILITY.GET_TIME函数原型为: 12 DBE_UTILITY.GET_TIME()RETURN BIGINT;
  • 存储过程支持自治事务 自治事务可以在存储过程中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与创建存储过程语法相同,请参见CREATE PROCEDURE,示例如下。 --建表gaussdb=# CREATE TABLE t2(a INT, b INT);NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEgaussdb=# INSERT INTO t2 VALUES(1,2);INSERT 0 1gaussdb=# SELECT * FROM t2; a | b ---+--- 1 | 2(1 row)--创建包含自治事务的存储过程gaussdb=# CREATE OR REPLACE PROCEDURE autonomous_4(a INT, b INT) AS DECLARE num3 INT := a;num4 INT := b;PRAGMA AUTONOMOUS_TRANSACTION;BEGININSERT INTO t2 VALUES(num3, num4); DBE_OUTPUT.PRINT_LINE('JUST USE CALL.');END;/CREATE PROCEDURE--创建调用自治事务存储过程的普通存储过程gaussdb=# CREATE OR REPLACE PROCEDURE autonomous_5(a INT, b INT) AS DECLARE BEGINDBE_OUTPUT.PRINT_LINE('JUST NO USE CALL.');INSERT INTO t2 VALUES(666, 666);autonomous_4(a,b);ROLLBACK;END;/CREATE PROCEDURE--调用普通存储过程gaussdb=# SELECT autonomous_5(11,22);JUST NO USE CALL.JUST USE CALL. autonomous_5 --------------(1 row)--查看表结果gaussdb=# SELECT * FROM t2 ORDER BY a; a | b ----+---- 1 | 2 11 | 22(2 rows)gaussdb=# DROP TABLE t2;DROP TABLE 上述例子,最后在回滚的事务块中执行包含自治事务的存储过程,直接说明了自治事务的特性,即主事务的回滚不会影响自治事务已经提交的内容。 父主题: 自治事务
  • GS_CLIENT_GLOBAL_KEYS GS_CLIENT_GLOBAL_KEYS系统表记录密态等值特性中客户端加密主密钥相关信息,每条记录对应一个客户端加密主密钥。 表1 GS_CLIENT_GLOBAL_KEYS字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 global_key_name name 客户端加密主密钥(cmk)名称。 key_namespace oid 包含此客户端加密主密钥(cmk)的命名空间OID。 key_owner oid 客户端加密主密钥(cmk)的所有者。 key_acl aclitem[] 创建该密钥时所拥有的访问权限。 create_date timestamp without time zone 创建密钥的时间。 父主题: 密态等值查询
  • 接口介绍 根据输入的参数,返回目标数据块中行的最后修改时间等信息,用于直观浏览每一行被判定为冷、热行的依据。该接口属于运维类接口,不做可见性判断,即传入的ctid为已删除的行时,该接口依然会返回当前行在页面上最新的状态。 表1 DBE_HEAT_MAP 接口名称 描述 ROW_HEAT_MAP 根据对象所属Schema、数据对象名称、数据对象分区名及ctid获取行的最后修改时间等信息。 DBE_HEAT_MAP.ROW_HEAT_MAP 根据对象所属Schema、数据对象名称、数据对象分区名及ctid获取行的最后修改时间等信息,原型为: 123456 BE_HEAT_MAP.ROW_HEAT_MAP(OWNER IN VARCHAR2,SEGMENT_NAME IN VARCHAR2,PARTITION_NAME IN VARCHAR2 DEFAULT NULL,CTID IN TEXT,V_DEBUG IN BOOL DEFAULT FALSE) 表2 DBE_HEAT_MAP.ROW_HEAT_MAP接口参数说明 参数 描述 OWNER 数据对象所属schema。 SEGMENT_NAME 数据对象名称。 PARTITION_NAME 数据对象分区名,可选参数,默认为NULL。 CTID 目标行的ctid,即block_id或row_id。 V_DEBUG debug调试,增加日志打印。 表3 DBE_HEAT_MAP.ROW_HEAT_MAP输出参数 参数 描述 OWNER 数据对象的所有者。 SEGMENT_NAME 数据对象名称。 PARTITION_NAME 数据对象分区名称,可选参数。 TABLESPACE_NAME 数据所属的表空间名称。 FILE_ID 行所属的绝对文件ID。 RELATIVE_FNO 行所属的相对文件ID( GaussDB 中无此逻辑,因此取值同上)。 CTID 行的ctid,即block_id或row_id。 WRITETIME 行的最后修改时间。 DBE_HEAT_MAP.ROW_HEAT_MAP 接口只支持 分布式数据库 中数据节点(DN),其他节点暂不支持。
  • GS_ILM GS_ILM系统表提供了ILM策略的主体信息,其中包括策略名称、策略属主、策略类型、策略编号和策略状态。 表1 GS_ILM字段 名称 类型 描述 pidx integer 策略序号,全局唯一以1开始的流水号。 creator oid 策略属主。 name name 策略名称,目前不支持自定义名称,默认名称为:p+pidx。 ptype "char" 策略类型: m:DATA MOVEMENT flag smallint 取值范围: 0:策略整体启用状态。 1:策略整体被禁用。 父主题: OLTP表压缩
  • 函数支持自治事务 自治事务可以在函数中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与函数语法相同,请参见CREATE FUNCTION。 gaussdb=# CREATE TABLE t4(a INT, b INT, c TEXT);NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEgaussdb=# CREATE OR REPLACE FUNCTION autonomous_32(a INT ,b INT ,c TEXT) RETURN INT AS DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGININSERT INTO t4 VALUES(a, b, c);RETURN 1;END;/CREATE FUNCTIONgaussdb=# CREATE OR REPLACE FUNCTION autonomous_33(num1 INT) RETURN INT AS DECLARE num3 INT := 220;tmp INT;PRAGMA AUTONOMOUS_TRANSACTION;BEGINnum3 := num3/num1;RETURN num3;EXCEPTIONWHEN DIVISION_BY_ZERO THENSELECT autonomous_32(num3, num1, SQLERRM) INTO tmp;ROLLBACK;RETURN 0;END;/CREATE FUNCTIONgaussdb=# SELECT autonomous_33(0); autonomous_33 --------------- 0(1 row)gaussdb=# SELECT * FROM t4; a | b | c -----+---+------------------ 220 | 0 | division by zero(1 row)gaussdb=# DROP TABLE t4;DROP TABLE 上述例子,最后在回滚的事务块中执行包含自治事务的函数,也能直接说明了自治事务的特性,即主事务的回滚不会影响自治事务已经提交的内容。 父主题: 自治事务
  • 匿名块支持自治事务 自治事务可以在匿名块中定义,标识符为PRAGMA AUTONOMOUS_TRANSACTION,其余语法与创建匿名块语法相同,请参见匿名块。 gaussdb=# CREATE TABLE t1(a INT ,B TEXT);NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default.HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.CREATE TABLEgaussdb=# START TRANSACTION;START TRANSACTIONgaussdb=# DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGINDBE_OUTPUT.PRINT_LINE('JUST USE CALL.');INSERT INTO t1 VALUES(1,'YOU ARE SO CUTE,WILL COMMIT!');END;/JUST USE CALL.ANONYMOUS BLOCK EXECUTEgaussdb=# INSERT INTO t1 VALUES(1,'YOU WILL ROLLBACK!');INSERT 0 1gaussdb=# ROLLBACK;ROLLBACKgaussdb=# SELECT * FROM t1; a | b ---+------------------------------ 1 | YOU ARE SO CUTE,WILL COMMIT!(1 row)gaussdb=# DROP TABLE t1;DROP TABLE 上述例子,最后在回滚的事务块前执行包含自治事务的匿名块,直接说明了自治事务的特性,即主事务的回滚不会影响自治事务已经提交的内容。 父主题: 自治事务
  • GS_ILM_POLICY GS_ILM_POLICY系统表提供了记录策略动作类型、判定条件等。 表1 GS_ILM_POLICY字段 名称 类型 描述 pidx integer 策略序号。 action "char" 策略动作,仅支持压缩(‘c’)。 ctype "char" 压缩类型,仅支持高级行压缩(‘a’)。 condition "char" 判定条件类型,仅支持LAST MODIFICATION(‘m’)。 days smallint 判定天数量。 scope "char" 策略作用域,仅支持Row(‘r’)。 predicate pg_node_tree 策略行级表达式。 父主题: OLTP表压缩
  • GS_COLUMN_KEYS GS_COLUMN_KEYS系统表记录密态等值特性中列加密密钥相关信息,每条记录对应一个列加密密钥。 表1 GS_COLUMN_KEYS字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 column_key_name name 列加密密钥(cek)名称。 column_key_distributed_id oid 根据加密密钥(cek)全称 域名 哈希值得到的id。 global_key_id oid 外键。客户端加密主密钥(cmk)的OID。 key_namespace oid 包含此列加密密钥(cek)的命名空间OID。 key_owner oid 列加密密钥(cek)的所有者。 create_date timestamp without time zone 创建列加密密钥的时间。 key_acl aclitem[] 创建该列加密密钥时所拥有的访问权限。 父主题: 密态等值查询
  • GS_CLIENT_GLOBAL_KEYS_ARGS GS_CLIENT_GLOBAL_KEYS_ARGS系统表记录密态等值特性中客户端加密主密钥相关元数据信息,每条记录对应客户端加密主密钥的一个键值对信息。 表1 GS_CLIENT_GLOBAL_KEYS_ARGS字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 global_key_id oid 客户端加密主密钥(cmk)oid。 function_name name 值为encryption。 key name 客户端加密主密钥(cmk)的元数据信息对应的名称。 value bytea 客户端加密主密钥(cmk)的元数据信息名称的值。 父主题: 密态等值查询
  • GS_SPM_EVOLUTION GS_SPM_EVOLUTION是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储计划演进结果的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1 GS_SPM_EVOLTOIN字段 名称 类型 描述 sql_namespace oid schema oid。 sql_hash bigint SPM中SQL的唯一标识。 plan_hash bigint plan id。 better boolean 是否是正向收益演进: t表示正向收益演进。 f表示负向收益演进。 refer_plan bigint 报告生成主要参考的plan hash。 status integer 演进过程中是否出现异常: 0表示没有发生异常。 1表示有异常发生。 reason text 演进报告的内容。 user oid 生成演进结果的用户。 creation_time timestamp with time zone 创建演进结果的时间。 父主题: SPM计划管理
  • PG_AUTH_MEMBERS PG_AUTH_MEMBERS系统表存储显示角色之间的成员关系。 表1 PG_AUTH_MEMBERS字段 名称 类型 描述 roleid oid 拥有成员的角色ID。 member oid 属于ROLEID角色的一个成员的角色ID。 grantor oid 赋予此成员关系的角色ID。 admin_option boolean 如果MEMBER可以把ROLEID角色的成员关系赋予其他角色,则为真,不可以则为假。 父主题: 连接和认证
  • GS_AUDITING_POLICY_FILTERS GS_AUDITING_POLICY_FILTERS系统表记录统一审计相关的过滤策略相关信息,每条记录对应一个设计策略。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_AUDITING_POLICY_FILTERS字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 filtertype name 过滤类型。目前值仅为logical_expr。 labelname name 名称。目前值仅为logical_expr。 policyoid oid 所属审计策略的OID,对应审计策略系统表GS_AUDITING_POLICY中的oid。 modifydate timestamp without time zone 创建或修改的最新时间戳。 logicaloperator text 过滤条件的逻辑字符串。 父主题: 审计
  • PG_AUTH_HISTORY PG_AUTH_HISTORY系统表记录了角色的认证历史。需要有系统管理员权限才可以访问此系统表。 表1 PG_AUTH_HISTORY字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roloid oid 角色标识。 passwordtime timestamp with time zone 创建和修改密码的时间。 rolpassword text 角色密码密文,加密方式由GUC参数password_encryption_type确定。 父主题: 连接和认证
  • PG_SHSECLABEL PG_SHSECLABEL系统表存储在共享数据库对象上的安全标签。安全标签可以用SECURITY LABEL命令操作。 查看安全标签的简单点的方法,请参阅PG_SECLABELS。 与PG_SECLABEL的作用类似,区别是它是用在单个数据库内部的对象的安全标签的。 不同于大多数的系统表,PG_SHSECLABEL在一个集群中的所有数据库中共享:每个数据库集群只有一个PG_SHSECLABEL,而不是每个数据库一个。 表1 PG_SHSECLABEL字段 名称 类型 引用 描述 objoid oid 任意OID属性 安全标签所属的对象的OID。 classoid oid PG_CLASS.oid 当前对象的系统目录的OID。 provider text - 与当前标签相关的标签提供程序。 label text - 应用于当前对象的安全标签。 父主题: 用户和权限管理
  • PG_AUTHID PG_AUTHID系统表存储有关数据库认证标识符(角色)的信息。角色把“用户”的概念包含在内。一个用户实际上就是一个rolcanlogin标志被设置的角色。任何角色(不管rolcanlogin设置与否)都能够把其他角色作为成员。 在一个集群中只有一份pg_authid,不是每个数据库有一份。需要有系统管理员权限才可以访问此系统表。 表1 PG_AUTHID字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 rolname name 角色名称。 rolsuper boolean 角色是否是拥有最高权限的初始系统管理员。 t(true):表示是。 f(false):表示不是。 rolinherit boolean 角色是否自动继承其所属角色的权限。 t(true):表示自动继承。 f(false):表示不自动继承。 rolcreaterole boolean 角色是否可以创建更多角色。 t(true):表示可以。 f(false):表示不可以。 rolcreatedb boolean 角色是否可以创建数据库。 t(true):表示可以。 f(false):表示不可以。 rolcatupdate boolean 角色是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 t(true):表示可以。 f(false):表示不可以。 rolcanlogin boolean 角色是否可以登录,也就是说,这个角色可以给予会话认证标识符。 t(true):表示可以。 f(false):表示不可以。 rolreplication boolean 角色是否具有复制权限。 t(true):表示有。 f(false):表示没有。 rolauditadmin boolean 角色是否具有审计管理员权限。 t(true):表示有。 f(false):表示没有。 rolsystemadmin boolean 角色是否具有系统管理员权限。 t(true):表示有。 f(false):表示没有。 rolconnlimit integer 对于可以登录的角色,限制其最大并发连接数量。 -1 表示没有限制。 rolpassword text 密码密文,如果没有密码,则为NULL。 rolvalidbegin timestamp with time zone 账户的有效开始时间,如果没有开始时间,则为NULL。 rolvaliduntil timestamp with time zone 账户的有效结束时间,如果没有结束时间,则为NULL。 rolrespool name 用户所能够使用的resource pool。 roluseft boolean 角色是否可以操作外表。 t(true):表示可以。 f(false):表示不可以。 rolparentid oid 用户所在组的用户OID。 roltabspace text 用户数据表的最大空间限额。 rolkind "char" 特殊用户种类。 n:表示普通用户。 p:表示永久用户。 roltempspace text 用户临时表的最大空间限额,单位 KB。 rolspillspace text 用户执行作业时下盘数据的最大空间限额,单位 KB。 rolexcpdata text 用户可以设置的查询规则(当前未使用)。 rolmonitoradmin boolean 角色是否具有监控管理员权限。 t(true):表示有。 f(false):表示没有。 roloperatoradmin boolean 角色是否具有运维管理员权限。 t(true):表示有。 f(false):表示没有。 rolpolicyadmin boolean 角色是否具有安全策略管理员权限。 t(true):表示有。 f(false):表示没有。 父主题: 连接和认证
  • 示例 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 --在存储过程中操作RAW数据CREATE OR REPLACE PROCEDURE proc_rawASstr varchar2(100) := 'abcdef';source raw(100);amount integer;BEGINsource := dbe_raw.cast_from_varchar2_to_raw(str);--类型转换amount := dbe_raw.get_length(source);--获取长度dbe_output.print_line(amount);END;/CREATE PROCEDURE--调用存储过程CALL proc_raw();6 proc_raw----------(1 row)--删除存储过程DROP PROCEDURE proc_raw;DROP PROCEDUREDECLAREv_raw RAW;v_double BINARY_DOUBLE;v_float FLOAT4;v_numeric NUMERIC;v_nvarchar2 NVARCHAR2;BEGIN-- RAW类型按位与SELECT DBE_RAW.BIT_AND('AFF', 'FF0B') INTO v_raw; -- 0A0B-- RAW类型按位取反SELECT DBE_RAW.BIT_COMPLEMENT('0AFF') INTO v_raw; -- F500-- RAW类型按位异或SELECT DBE_RAW.BIT_XOR('AFF', 'FF0B') INTO v_raw; -- F5F4-- BINARY_DOUBLE类型值转RAW类型SELECT DBE_RAW.CAST_FROM_BINARY_DOUBLE_TO_RAW(1.0001,1) INTO v_raw; -- 3FF00068DB8BAC71-- RAW类型值转BINARY_DOUBLE类型SELECT DBE_RAW.CAST_FROM_RAW_TO_BINARY_DOUBLE('3FF00068DB8BAC7',1) INTO v_double; -- 1.0001-- RAW类型转FLOAT4类型SELECT DBE_RAW.CAST_FROM_RAW_TO_BINARY_FLOAT('40200000',1) INTO v_float; -- 2.5-- FLOAT4类型转RAW类型SELECT DBE_RAW.CAST_FROM_BINARY_FLOAT_TO_RAW('2.5',1) INTO v_raw; -- 40200000-- RAW类型转NUMERIC类型SELECT DBE_RAW.CAST_FROM_RAW_TO_NUMBER('808002008813') INTO v_numeric; -- 2.5-- NUMERIC类型转RAW类型SELECT DBE_RAW.CAST_FROM_NUMBER_TO_RAW('2.5') INTO v_raw; -- 808002008813-- RAW类型转NVARCHAR2类型SELECT DBE_RAW.CAST_FROM_RAW_TO_NVARCHAR2('12345678') INTO v_nvarchar2; -- \x124Vx-- RAW类型COMPARESELECT DBE_RAW.COMPARE('ABCD','AB') INTO v_numeric; -- 2-- RAW类型CONCATSELECT DBE_RAW.CONCAT('ABCD','AB') INTO v_raw; -- ABCDAB-- RAW类型CONVERTSELECT DBE_RAW.CONVERT('E695B0', 'GBK','UTF8') INTO v_raw; -- CAFD-- RAW类型COPIESSELECT DBE_RAW.COPIES('ABCD',2) INTO v_raw; -- ABCDABCD-- RAW类型指定位置和长度进行覆盖SELECT DBE_RAW.OVERLAY('abcef', '12345678123456', 2, 5, '9966') INTO v_raw; -- 120ABCEF999956-- RAW类型按字节翻转SELECT DBE_RAW.REVERSE('12345678') INTO v_raw; -- 78563412-- RAW类型字节转换(无填充码)SELECT DBE_RAW.TRANSLATE('1122112233', '1133','55') INTO v_raw; -- 55225522-- RAW类型字节转换(有填充码)SELECT DBE_RAW.TRANSLITERATE('1122112233', '55','1133','FFEE') INTO v_raw; -- 55225522FF-- RAW类型两个字节间的所有字节SELECT DBE_RAW.XRANGE('00','03') INTO v_raw; -- 00010203END;/ANONYMOUS BLOCK EXECUTE
  • GS_WORKLOAD_RULE GS_WORKLOAD_RULE系统表存储与SQL限流规则相关的信息。该系统表没有权限限制,所有用户可查询。 表1 GS_WORKLOAD_RULE字段 名称 类型 描述 rule_id bigint 限流规则标识列,系统自动生成。 rule_name name 限流规则的名称,用于检索限流规则,不保证唯一性,可以为NULL。 databases name[] 限流规则作用的数据库列表,为NULL表示所有库生效。 max_workload bigint 限制规则设置的最大并发数。 is_valid boolean 限流规则是否生效,超时的限流规则会设为false。 start_time timestamp with time zone 限流规则开始的时间,为NULL表示从现在开始生效。 end_time timestamp with time zone 限流规则结束的时间,为NULL表示一直生效。 rule_type text 限流规则类型,当前仅支持:“sqlid”、“select”、“insert”、“update”、“delete”、“merge”、“resource”,其他的为非法值。 option_val text[] 限流规则的参数值,包括:sqlid、关键字列表、资源限制情况。 详细请参见gs_add_workload_rule接口说明。 node_names text[] 预留字段,限流规则生效的节点名称列表,当前不生效。 user_names text[] 预留字段,限流规则生效的用户名称列表,当前不生效。 父主题: 其他系统表
  • PG_ENUM PG_ENUM系统表包含显示每个枚举类型值和标签的记录。给定枚举类型的内部表示实际上是PG_ENUM里面相关行的OID。 表1 PG_ENUM字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 enumtypid oid PG_TYPE.oid 拥有这个枚举值的12.2.15.78 PG_TYPE记录的OID。 enumsortorder real - 这个枚举值在它的枚举类型中的排序位置。 enumlabel name - 这个枚举值的文本标签。 PG_ENUM行的OID跟着一个特殊规则:偶数的OID保证用和它们的枚举类型一样的排序顺序。也就是,如果两个偶数OID属于相同的枚举类型,那么较小的OID必须有较小enumsortorder值。奇数OID需要毫无关系的排序顺序。这个规则允许枚举比较例程在许多常见情况下避开目录查找。创建和修改枚举类型的例程只要可能就尝试分配偶数OID给枚举值。 当创建了一个枚举类型时,它的成员赋予了排序顺序位置1到n。但是随后添加的成员可能会分配enumsortorder的负值或分数值。对这些值的唯一要求是它们要正确的排序和在每个枚举类型中唯一。 父主题: 其他系统表
  • PG_FOREIGN_TABLE PG_FOREIGN_TABLE系统表存储外部表的辅助信息。 表1 PG_FOREIGN_TABLE字段 名称 类型 描述 ftrelid oid 外部表的ID。 ftserver oid 外部表的所在服务器。 ftwriteonly boolean 外部表是否可写,取值如下: t(true):表示可写。 f(false):表示不可写。 ftoptions text[] 外部表的可选项,具体参考7.13.8.22 CREATE FOREIGN TABLE语法说明。 父主题: 其他系统表
  • PG_COLLATION PG_COLLATION系统表描述可用的排序规则,本质上从一个SQL名称映射到操作系统本地类别。 表1 PG_COLLATION字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 collname name - 排序规则名(每个名称空间和编码唯一)。 collnamespace oid PG_NAMESPACE.oid 包含这个排序规则的名称空间的OID。 collowner oid PG_AUTHID.oid 排序规则的所有者。 collencoding integer - 排序规则可用的编码,兼容PostgreSQL所有的字符编码类型,如果适用于任意编码为-1。 collcollate name - 这个排序规则对象的LC_COLLATE。 collctype name - 这个排序规则对象的LC_CTYPE。 collpadattr text - 这个排序规则的填充属性。 NULL:不适用。 NO PAD:无填充。 PAD SPACE:末尾空白填充。 collisdef boolean - 这个排序规则是否是所属字符集的默认字符序。 id integer - 当前版本暂不支持。 父主题: 其他系统表
  • PG_LARGEOBJECT PG_LARGEOBJECT系统表保存那些标记着“大对象”的数据。一个大对象是使用其创建时分配的OID标识的。每个大对象都分解成足够小的小段或者“页面”以便以行的形式存储在PG_LARGEOBJECT里。每页的数据定义为LOBLKSIZE。 需要有系统管理员权限才可以访问此系统表。 表1 PG_LARGEOBJECT字段 名称 类型 引用 描述 loid oid PG_LARGEOBJECT_METADATA.oid 包含本页的大对象的标识符。 pageno integer - 本页在其大对象数据中的页码,从零开始计算。 data bytea - 存储在大对象中的实际数据。这些数据绝不会超过LOBLKSIZE字节,而且可能更少。 PG_LARGEOBJECT的每一行保存一个大对象的一个页面,从该对象内部的字节偏移(pageno * LOBLKSIZE)开始。这种实现允许松散的存储:页面可以丢失,而且可以比LOBLKSIZE字节少(即使它们不是对象的最后一页)。大对象内丢失的部分读做零。 父主题: 其他系统表
  • PG_OPCLASS PG_OPCLASS系统表定义索引访问方法操作符类。 每个操作符类为一种特定数据类型和一种特定索引访问方法定义索引字段的语义。一个操作符类本质上指定一个特定的操作符族适用于一个特定的可索引的字段数据类型。索引的字段实际可用的族中的操作符集是接受字段中左侧字段的数据类型。 表1 PG_OPCLASS字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 opcmethod oid PG_AM.oid 操作符类所服务的索引访问方法。 opcname name - 这个操作符类的名称。 opcnamespace oid PG_NAMESPACE.oid 这个操作符类的名称空间。 opcowner oid PG_AUTHID.oid 操作符类属主。 opcfamily oid PG_OPFAMILY.oid 包含该操作符类的操作符族。 opcintype oid PG_TYPE.oid 操作符类索引的数据类型。 opcdefault boolean - 如果操作符类是opcintype的缺省,则为真(t),否则为假(f)。 opckeytype oid PG_TYPE.oid 索引数据的类型,如果和opcintype相同则为零。 一个操作符类的opcmethod必须匹配包含它的操作符族的opfmethod。 父主题: 其他系统表
  • GS_JOB_ATTRIBUTE GS_JOB_ATTRIBUTE系统表提供了DBE_SCHEDULER定时任务的相关属性信息,其中包括定时任务、定时任务类、证书、授权、程序和调度的基本属性。新安装数据库集群普通用户无权限访问。 表1 GS_JOB_ATTRIBUTE字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 job_name text 定时任务、定时任务类、证书、程序、调度的名字和授权的用户名。 attribute_name text 定时任务、定时任务类、证书、程序、调度的属性名和授权的内容。 attribute_value text 定时任务、定时任务类、证书、程序和调度的属性值。 父主题: 其他系统表
  • PG_AMPROC PG_AMPROC系统表存储有关与访问方法操作符族相关联的支持过程的信息。每个属于操作符族的支持过程都占有一行。 表1 PG_AMPROC字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 amprocfamily oid PG_OPFAMILY.oid 该项的操作符族。 amproclefttype oid PG_TYPE.oid 相关操作符的左输入数据类型。 常见的数据类型请参见数据类型。 amprocrighttype oid PG_TYPE.oid 相关操作符的右输入数据类型。 常见的数据类型请参见数据类型。 amprocnum smallint - 支持过程编号。 amproc regproc PG_PROC.proname 过程的OID。 amproclefttype和amprocrighttype字段的习惯解释,标识一个特定支持过程支持的操作符的左和右输入类型。对于某些访问方式,匹配支持过程本身的输入数据类型,对其他的则不这样。有一个对索引的“缺省”支持过程的概念,amproclefttype和amprocrighttype都等于索引操作符类的opcintype。 父主题: 其他系统表
  • PG_CAST PG_CAST系统表存储数据类型之间的转换关系。 表1 PG_CAST字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 castsource oid 源数据类型的OID。 casttarget oid 目标数据类型的OID。 castfunc oid 转换函数的OID。如果为零表明不需要转换函数。 castcontext "char" 源数据类型和目标数据类型间的转换方式: 'e':表示只能进行显式转换(使用CAST或::语法)。 'i':表示能进行隐式转换。 'a':表示类型间同时支持隐式和显式转换。 castmethod "char" 转换方法: 'f':使用castfunc字段中指定的函数进行转换。 'b':类型间是二进制强制转换,不使用castfunc。 父主题: 其他系统表
  • PG_DIRECTORY PG_DIRECTORY系统表用于保存用户添加的directory对象,可以通过CREATE DIRECTORY语句向该表中添加记录,当enable_access_server_directory=off时,只允许初始用户创建directory对象;当enable_access_server_directory=on时,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象。普通用户需要授权才能访问该表。 表1 PG_DIRECTORY字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 dirname name 目录对象的名称。 owner oid 目录对象的所有者。 dirpath text 目录路径。 diracl aclitem[] 访问权限。 父主题: 其他系统表
  • PG_NAMESPACE PG_NAMESPACE系统表存储名称空间,即存储schema相关的信息。如果开启数据库对象隔离属性,用户只能查看自己有权限访问的schema信息。 表1 PG_NAMESPACE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 nspname name 名称空间的名称。 nspowner oid 名称空间的所有者。 nsptimeline bigint 在DN上创建此命名空间时的时间线。此字段为内部使用,仅在DN上有效。 nspacl aclitem[] 访问权限。具体请参见GRANT和REVOKE。 in_redistribution "char" 是否处于重发布状态。 nspblockchain boolean 该模式是否为防篡改模式。 true:该模式为防篡改模式。 false:该模式为非防篡改模式。 nspcollation oid 名称空间的默认字符序(仅在sql_compatibility='MYSQL'时可能有值)。 父主题: 其他系统表
  • PG_JOB_PROC PG_JOB_PROC系统表对应12.2.15.45 PG_JOB表中每个任务的作业内容(包括:PL/SQL代码块、匿名块)。将存储过程信息独立出来,是因为如果放到PG_JOB中,被加载到共享内存的时候,会占用不必要的空间,所以在使用的时候再进行查询获取。普通用户需授权后才能访问。 表1 PG_JOB_PROC字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 job_id integer 外键,关联12.2.15.45 PG_JOB中的job_id。 what text 作业内容,DBE_SCHEDULER定时任务中的程序内容。 job_name text DBE_SCHEDULER定时任务专用,定时任务或程序名称。 父主题: 其他系统表
共99354条