云数据库 GaussDB-PKG_UTIL

时间:2023-11-01 16:22:25

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.IO_PRINT

将字符串打印输出。

PKG_UTIL.RAW_GET_LENGTH

获取raw的长度。

PKG_UTIL.RAW_CAST_FROM_VARCHAR2

将varchar2转化为raw。

PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER

将binary integer转化为raw。

PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER

将raw转化为binary integer。

PKG_UTIL.SET_RANDOM_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_READLINE

从一个打开的文件句柄中读取一行数据。

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_GET_LENGTH

    该函数LOB_GET_LENGTH获取输入数据的长度。

    PKG_UTIL.LOB_GET_LENGTH函数原型为:

    1234
    PKG_UTIL.LOB_GET_LENGTH(lob       IN   anyelement)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函数原型为:
    1234567
    PKG_UTIL.LOB_WRITE(dest_lob    INOUT   anyelement,src_lob     IN      varchar2len         IN      int,start       IN      int)RETURN ANYELEMENT;
    表4 PKG_UTIL.LOB_WRITE接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    dest_lob

    clob/blob

    INOUT

    写入的目标对象。

    src_lob

    clob/blob

    IN

    被写入的源对象。

    len

    int

    IN

    源对象的写入长度。

    start

    int

    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

    写入源对象的长度,为NULL则默认写入源对象全部。

  • 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,start1      IN   int,start2      IN   int)RETURN INTEGER;
    表6 PKG_UTIL.LOB_COMPARE接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    lob1

    clob/blob

    IN

    待比较的字符串。

    lob2

    clob/blob

    IN

    待比较的字符串。

    len

    int

    IN

    比较的长度。

    start1

    int

    IN

    lob1起始偏移量。

    start2

    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)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   bytea,len          IN   int,start        IN   intvalue        IN   char default 0)RETURN record;
    表8 PKG_UTIL.LOB_RESET接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    lob

    bytea

    IN

    待重置的字符串。

    len

    int

    IN

    重置的长度。

    start

    int

    IN

    重置的起始位置。

    value

    int

    IN

    设置的字符。默认值‘0’。

  • 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;
    表9 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;
    表10 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;
    表11 PKG_UTIL.RAW_CAST_FROM_VARCHAR2接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    str

    varchar2

    IN

    需要转化的源数据。

  • PKG_UTIL.CAST_FROM_BINARY_INTEGER

    该函数CAST_FROM_BINARY_INTEGER将binary integer数据转化为raw 。

    PKG_UTIL.CAST_FROM_BINARY_INTEGER函数原型为:
    12345
    PKG_UTIL.CAST_FROM_BINARY_INTEGER(value       IN   integer,endianess   IN   integer)RETURN raw;
    表12 PKG_UTIL.CAST_FROM_BINARY_INTEGER接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    value

    integer

    IN

    需要转化为raw的源数据。

    endianess

    integer

    IN

    表示字节序的整型值1或2(1代表BIG_ENDIAN,2代表LITTLE-ENDIAN)。

  • PKG_UTIL.CAST_TO_BINARY_INTEGER

    该函数CAST_TO_BINARY_INTEGER将raw数据转化为binary integer 。

    PKG_UTIL.CAST_TO_BINARY_INTEGER函数原型为:
    12345
    PKG_UTIL.CAST_TO_BINARY_INTEGER(value       IN   raw,endianess   IN   integer)RETURN integer;
    表13 PKG_UTIL.CAST_TO_BINARY_INTEGER接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    value

    raw

    IN

    需要转化为binary integer的raw类型源数据。

    endianess

    integer

    IN

    表示字节序的整型值1或2(1代表BIG_ENDIAN,2代表LITTLE-ENDIAN)。

  • PKG_UTIL.SET_RANDOM_SEED

    该函数SET_RANDOM_SEED设置随机数种子。

    PKG_UTIL.SET_RANDOM_SEED函数原型为:
    1234
    PKG_UTIL.RANDOM_SET_SEED(seed         IN   int)RETURN integer;
    表14 PKG_UTIL.SET_RANDOM_SEED接口参数说明

    参数

    类型

    入参/出参

    是否可以为空

    描述

    seed

    int

    IN

    随机数种子。

  • PKG_UTIL.RANDOM_GET_VALUE

    该函数RANDOM_GET_VALUE返回0~1区间的一个随机数。

    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
    表15 PKG_UTIL.FILE_SET_DIRNAME接口参数说明

    参数

    描述

    dirname

    文件的目录位置,这个字符串是一个目录对象名。

    说明:

    文件目录的位置,需要添加到系统表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)
    表16 PKG_UTIL.FILE_OPEN接口参数说明

    参数

    描述

    file_name

    文件名,包含扩展(文件类型),不包括路径名。如果文件名中包含路径,在OPEN中会被忽略,在Unix系统中,文件名不能以/.结尾。

    open_mode

    指定文件的打开模式,包含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
    表17 PKG_UTIL.FILE_SET_MAX_LINE_SIZE接口参数说明

    参数

    描述

    max_line_size

    每行最大字符数,包含换行符(最小值是1,最大值是32767)。如果没有指定,会指定一个默认值1024。

  • PKG_UTIL.FILE_IS_CLOSE

    检测一个文件句柄是否关闭。

    PKG_UTIL.FILE_IS_CLOSE函数原型为:

    1234
    PKG_UTIL.FILE_IS_CLOSE(file in integer)RETURN BOOL
    表18 PKG_UTIL.FILE_IS_CLOSE接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

  • PKG_UTIL.FILE_READ

    根据指定的长度从一个打开的文件句柄中读取出数据。

    PKG_UTIL.FILE_READ函数原型为:

    1234
    PKG_UTIL.FILE_READ(file     IN   integer,buffer   OUT  text,len      IN   integer)
    表19 PKG_UTIL.FILE_READ接口参数说明

    参数

    描述

    file

    通过调用OPEN打开的文件句柄,文件必须以读的模式打开,否则会抛出INVALID_OPERATION的异常。

    buffer

    用于接收数据的BUFFER。

    len

    从文件中读取的字节数。

  • PKG_UTIL.FILE_READLINE

    根据指定的长度从一个打开的文件句柄中读取出一行数据。

    PKG_UTIL.FILE_READLINE函数原型为:

    1234
    PKG_UTIL.FILE_READLINE(file    IN  integer,buffer  OUT text,len     IN  integer default 1024)
    表20 PKG_UTIL.FILE_READLINE接口参数说明

    参数

    描述

    file

    通过调用OPEN打开的文件句柄,文件必须以读的模式打开,否则会抛出INVALID_OPERATION的异常。

    buffer

    用于接收数据的BUFFER。

    len

    从文件中读取的字节数,默认是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
    表21 PKG_UTIL.FILE_WRITE接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

    buffer

    要写入文件的文本数据,BUFFER的最大值是32767个字节。如果没有指定值,默认是1024个字节,没有刷新到文件之前,一系列的PUT操作的BUFFER总和不能超过32767个字节。

    说明:

    对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。

  • PKG_UTIL.FILE_NEWLINE

    向一个打开的文件中写入一个行终结符。行终结符和平台相关。

    PKG_UTIL.FILE_NEWLINE函数原型为:

    1234
    PKG_UTIL.FILE_WRITELINE(file in integer)RETURN BOOL
    表22 PKG_UTIL.FILE_NEWLINE接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

  • 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
    表23 PKG_UTIL.FILE_READ_RAW接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

    length

    要读取的长度,默认为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
    表24 PKG_UTIL.FILE_NEWLINE接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

    r

    准备传入文件的数据

    说明:

    对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。

  • PKG_UTIL.FILE_FLUSH

    一个文件句柄中的数据要写入到物理文件中,缓冲区中的数据必须要有一个行终结符。当文件必须在打开时读取,刷新非常有用。例如,调试信息可以刷新到文件中,以便立即读取。

    PKG_UTIL.FILE_FLUSH函数原型为:

    1234
    PKG_UTIL.FILE_FLUSHfile in integerRETURN VOID
    表25 PKG_UTIL.FILE_FLUSH接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

  • PKG_UTIL.FILE_CLOSE

    关闭一个打开的文件句柄。

    PKG_UTIL.FILE_CLOSE函数原型为:

    1234
    PKG_UTIL.FILE_CLOSEfile in integerRETURN BOOL
    表26 PKG_UTIL.FILE_CLOSE接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

  • PKG_UTIL.FILE_REMOVE

    删除一个磁盘文件,操作的时候需要有充分的权限。

    PKG_UTIL.FILE_REMOVE函数原型为:

    1234
    PKG_UTIL.FILE_REMOVE(file_name in text)RETURN VOID 
    表27 PKG_UTIL.FILE_REMOVE接口参数说明

    参数

    描述

    filen_ame

    要删除的文件名

  • PKG_UTIL.FILE_RENAME

    对于磁盘上的文件进行重命名,类似Unix的mv。

    PKG_UTIL.FILE_RENAME函数原型为:

    123456
    PKG_UTIL.FILE_RENAME(text src_dir in text, text src_file_name in text, text dest_dir in text, text dest_file_name in text,  overwrite boolean default false)
    表28 PKG_UTIL.FILE_RENAME接口参数说明

    参数

    描述

    src_dir

    源文件目录(大小写敏感)。

    src_file_name

    源文件名。

    dest_dir

    目标文件目录(大小写敏感)。

    dest_file_name

    目标文件名。

    overwrite

    默认是false,如果目的目录下存在一个同名的文件,不会进行重写。

  • PKG_UTIL.FILE_SIZE

    返回指定的文件大小。

    PKG_UTIL.FILE_SIZE函数原型为:

    123
    bigint PKG_UTIL.FILE_SIZE(file_name in text)
    表29 PKG_UTIL.FILE_SIZE接口参数说明

    参数

    描述

    file_name

    文件名

  • PKG_UTIL.FILE_BLOCK_SIZE

    返回指定的文件含有的块数量。

    PKG_UTIL.FILE_BLOCK_SIZE函数原型为:

    123
    bigint PKG_UTIL.FILE_BLOCK_SIZE(file_name in text)
    表30 PKG_UTIL.FILE_BLOCK_SIZE接口参数说明

    参数

    描述

    file_name

    文件名

  • PKG_UTIL.FILE_EXISTS

    判断指定的文件是否存在。

    PKG_UTIL.FILE_EXISTS函数原型为:

    1234
    PKG_UTIL.FILE_EXISTS(file_name in text)RETURN BOOL
    表31 PKG_UTIL.FILE_EXISTS接口参数说明

    参数

    描述

    file_name

    文件名

  • PKG_UTIL.FILE_GETPOS

    返回文件的偏移量,单位字节。

    PKG_UTIL.FILE_GETPOS函数原型为:

    1234
    PKG_UTIL.FILE_GETPOS(file in integer )RETURN BIGINT
    表32 PKG_UTIL.FILE_GETPOS接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

  • PKG_UTIL.FILE_SEEK

    根据用户指定的字节数向前或者向后调整文件指针的位置。

    PKG_UTIL.FILE_SEEK函数原型为:

    12345
    void PKG_UTIL.FILE_SEEK(file in integer,start in bigint default null)RETURN VOID
    表33 PKG_UTIL.FILE_SEEK接口参数说明

    参数

    描述

    file

    一个打开的文件句柄。

    start

    文件偏移,字节。

  • PKG_UTIL.FILE_CLOSE_ALL

    关闭一个会话中打开的所有的文件句柄。

    PKG_UTIL.FILE_CLOSE_ALL函数原型为:

    PKG_UTIL.FILE_CLOSE_ALL()RETURN VOID↵
    表34 PKG_UTIL.FILE_CLOSE_ALL接口参数说明

    参数

    描述

  • PKG_UTIL.EXCEPTION_REPORT_ERROR

    抛出一个异常。

    PKG_UTIL.EXCEPTION_REPORT_ERROR函数原型为:

    123456
    PKG_UTIL.EXCEPTION_REPORT_ERROR(code integerlog text,flag boolean DEFAULT false)RETURN INTEGER
    表35 PKG_UTIL.EXCEPTION_REPORT_ERROR接口参数说明

    参数

    描述

    code

    抛异常所打印的错误码。

    log

    抛异常所打印的日志提示信息。

    flag

    保留字段,默认为false。

support.huaweicloud.com/devg-opengauss/opengauss_devg_0705.html