华为云用户手册

  • Undo系统函数 gs_undo_meta(type, zoneId, location) 描述:Undo各模块元信息。 参数说明: type(元信息类型) 0表示Undo Zone(Record) 对应的元信息。 1表示Undo Zone(Transaction Slot) 对应的元信息。 2表示Undo Space(Record) 对应的元信息。 3表示Undo Space(Transaction Slot) 对应的元信息。 zoneId(undo zone编号) -1表示所有undo zone的元信息。 0-1024*1024表示对应zoneid的元信息。 location(读取位置) 0表示从当前内存中读取。 1表示从物理文件中读取。 返回值类型:record 表1 gs_undo_meta(0,-1,0)输出示例 参数类型 参数名 类型 描述 输出参数 zoneId oid undo zone的id。 输出参数 persistType oid 持久化级别。 输出参数 insert text 下一条插入的undo记录位置。 输出参数 discard text 普通回收到的undo记录位置。 输出参数 end text 强制回收掉undo记录位置,小于它的undo记录已经被回收。 输出参数 used text 已经使用的undo空间。 输出参数 lsn text 修改zone的lsn。 输出参数 pid oid zone绑定的进程id。 gs_undo_translot(location, zoneId) 描述:Undo事务槽信息。 参数说明: location(读取位置) 0表示从当前内存中读取。 1表示从物理文件中读取。 zoneId(undo zone编号) -1表示所有undo zone的元信息。 0-1024*1024表示对应zoneId的元信息。 返回值类型:record 表2 gs_undo_translot(0,-1)输出示例 参数类型 参数名 类型 描述 输出参数 groupId oid 使用的undo zone id。 输出参数 xactId text 事务id。 输出参数 startUndoPtr text slot对应事务起始插入undo记录位置。 输出参数 endUndoPtr text slot对应事务结束插入undo记录位置。 输出参数 lsn text 对应slot指针。 输出参数 slot_states oid 事务状态,0表示已经提交,1表示正在执行中,2表示回滚中,3表示回滚完成。 gs_stat_undo() 描述:Undo统计信息。 返回值类型:record 表3 gs_stat_undo参数说明 参数类型 参数名 类型 描述 输出参数 curr_used_zone_count uint32 当前使用的Undo zone数量。 输出参数 top_used_zones text 前三个使用量最大的Undo zone信息,格式输出为: zoneId1:使用大小。 zoneId2:使用大小。 zoneId3:使用大小。 输出参数 curr_used_undo_size uint32 当前使用的Undo总空间大小,单位为MB。 输出参数 undo_threshold uint32 为guc参数undo_space_limit_size * 80%计算的结果,单位为MB。 输出参数 oldest_xid_in_undo uint64 当前Undo空间回收到的事务xid(小于该xid事务产生的Undo记录都已经被回收)。 输出参数 oldest_xmin uint64 最老的活跃事务。 输出参数 total_undo_chain_len int64 所有访问过的Undo链总长度。 输出参数 max_undo_chain_len int64 最大访问过的Undo链长度。 输出参数 create_undo_file_count uint32 创建的Undo文件数量统计。 输出参数 discard_undo_file_count uint32 删除的Undo文件数量统计。 gs_undo_record(undoptr) 描述:Undo记录解析。 参数说明: undoptr(undo记录指针) 返回值类型:record gs_undo_dump_parsepage_mv(relpath text, blkno bigint, reltype text, rmem boolean) 描述:解析ustore数据表磁盘页面的页头信息,每个元组的头部信息,标识位信息以及所有可以查询到undo历史版本信息。 返回值类型:text 备注:必须是系统管理员或者运维管理人员才能执行此函数。 该接口当前仅支持USTORE数据表。 表4 gs_undo_dump_parsepage_mv参数说明 参数类型 参数名 类型 描述 输入参数 relpath text ustore表数据文件相对路径,相对路径格式为:tablespace name/database oid/relfilenode,例如base/16603/16384, 表对应数据文件的相对路径查找可以通过pg_relation_filepath('tablename')查询。 输入参数 blkno bigint -1 解析所有block页面。 0-MaxBlocNumber解析指定的block页面。 输入参数 reltype text 表类型,目前仅支持ustore数据表,取值为uheap。 输入参数 rmem boolean false true 目前仅支持false,从磁盘文件上解析对应的页面。 输出参数 output text 解析结果文件的绝对路径。 gs_undo_meta_dump_zone(zone_id int, read_memory boolean) 描述:解析Undo模块中zone的元信息。 返回值类型:record 表5 gs_undo_meta_dump_zone参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id int Undo zone编号。 输出参数 persist_type int 持久化级别: 0:普通表 1:无日志表 2:临时表 输出参数 insert text 下一条插入的undo记录位置。 输出参数 discard text 普通回收到的undo记录位置。 输出参数 forcediscard text 强制回收掉undo记录位置,小于它的undo记录已经被回收。 输出参数 lsn text 修改zone的lsn。 gs_undo_meta_dump_spaces(zone_id int, read_memory boolean) 描述:解析Undo模块中undo记录空间,undo slot空间的元信息。 返回值类型:record 表6 gs_undo_meta_dump_spaces参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id int Undo zone编号。 输出参数 undorecord_space_tail text Undo record空间的结尾位置。 输出参数 undorecord_space_head text Undo record空间的起始位置。 输出参数 undorecord_space_lsn text 修改Undo record空间lsn。 输出参数 undoslot_space_tail text Undo slot空间的结尾位置。 输出参数 undoslot_space_head text Undo slot空间的起始位置。 输出参数 undoreslot_space_lsn text 修改Undo slot空间lsn。 gs_undo_meta_dump_slot(zone_id int, read_memory boolean) 描述:解析Undo模块中slot元信息。 返回值类型:record 表7 gs_undo_meta_dump_slot参数说明 参数类型 参数名 类型 描述 输入参数 zone_id int Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id int Undo zone编号。 输出参数 allocate text Undo transaction slot分配位置。 输出参数 recycle text Undo transaction slot回收位置。 输出参数 frozen_xid text frozen xid,用于可见性判断。 输出参数 global_frozen_xid text 全局最小的frozen xid,小于该xid的事务可见。 输出参数 recycle_xid text 回收到的xid,小于该xid的事务被回收。 输出参数 global_recycle_xid text 全局最小的recycle xid,小于该xid的事务被回收。 gs_undo_translot_dump_slot(zone_id int, read_memory boolean) 描述:解析zone中的slot。 返回值类型:record 表8 gs_undo_translot_dump_slot参数说明 参数类型 参数名 类型 描述 输入参数 zone_id oid Undo zone编号: -1:查询所有Undo zone。 0-1,048,575:查询对应zone_id编号的undo zone元信息。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id text Undo zone编号。 输出参数 slot_xid text 事务id。 输出参数 start_undoptr text slot对应事务起始插入undo记录位置。 输出参数 end_undoptr text slot对应事务结束插入undo记录位置。 输出参数 slot_ptr text Transaction Slot对应的位置。 输出参数 slot_states oid 事务状态: 0:已提交 1:执行中 2:回滚中 3:回滚完成 gs_undo_translot_dump_xid(slot_xid xid, read_memory boolean) 描述:根据xid,解析zone中对应的slot。 返回值类型:record 表9 gs_undo_translot_dump_xid参数说明 参数类型 参数名 类型 描述 输入参数 slot_xid xid 需要查询的事务id。 输入参数 read_memory boolean true:从当前内存中读取。 false:从物理文件中读取。 输出参数 zone_id text Undo zone编号。 输出参数 slot_xid text 事务id。 输出参数 start_undoptr text slot对应事务起始插入undo记录位置。 输出参数 end_undoptr text slot对应事务结束插入undo记录位置。 输出参数 lsn text 修改slot的lsn。 输出参数 slot_states oid 事务状态: 0 已提交 1 执行中 2 回滚中 3 回滚完成 gs_undo_dump_record(undoptr bigint) 描述:解析undo记录。 返回值类型:record 表10 gs_undo_dump_record参数说明 参数类型 参数名 类型 描述 输入参数 undoptr bigint 需要解析的undo记录起始位置。 输出参数 undoptr bigint 需要解析的undo记录起始位置。 输出参数 xactid text 事务id。 输出参数 cid text command id。 输出参数 reloid text relation oid。 输出参数 relfilenode text 文件的relfinode。 输出参数 utype text undo记录类型。 输出参数 blkprev text 同一个块前一条undo记录的位置。 输出参数 blockno text 块号。 输出参数 uoffset text undo记录偏移。 输出参数 prevurp text 前一条undo记录位置。 输出参数 payloadlen text undo记录数据部分长度。 输出参数 oldxactid text 前一个事务id。 输出参数 partitionoid text 分区oid。 输出参数 tablespace text 表空间。 输出参数 alreadyread_bytes text 读取到的undo记录长度。 输出参数 prev_undorec_len text 前一条undo记录长度。 输出参数 td_id text Transaction Directory的id。 输出参数 reserved text 是否保存。 输出参数 flag text 标识1。 输出参数 flag2 text 标识2。 输出参数 t_hoff text Undo记录数据头的长度。 gs_undo_dump_xid(undo_xid xid) 描述:根据xid解析undo记录。 返回值类型:record 表11 gs_undo_dump_xid参数说明 参数类型 参数名 类型 描述 输入参数 undo_xid xid 事务xid 输出参数 undoptr xid 需要解析的undo记录起始位置。 输出参数 xactid text 事务id 输出参数 cid text command id 输出参数 reloid text relation oid 输出参数 relfilenode text 文件的relfinode 输出参数 utype text undo记录类型 输出参数 blkprev text 同一个块前一条undo记录的位置。 输出参数 blockno text 块号 输出参数 uoffset text undo记录偏移 输出参数 prevurp text 前一条undo记录位置。 输出参数 payloadlen text undo记录数据部分长度。 输出参数 oldxactid text 前一个事务id 输出参数 partitionoid text 分区oid 输出参数 tablespace text 表空间 输出参数 alreadyread_bytes text 读取到的undo记录长度。 输出参数 prev_undorec_len text 前一条undo记录长度。 输出参数 td_id text Transaction Directory的id。 输出参数 reserved text 是否保留 输出参数 flag text 标识1 输出参数 flag2 text 标识2 输出参数 t_hoff text Undo记录数据头的长度。 gs_verify_undo_record(type, startIdx,endIdx, location) 描述:校验Undo记录。 返回值类型:record 该接口仅为扩展预留接口,禁止使用。 gs_verify_undo_translot(type, startIdx,endIdx, location) 描述:校验Undo事务槽。 返回值类型:record 该接口仅为扩展预留接口,禁止使用。 gs_verify_undo_meta(type, startIdx,endIdx, location) 描述:校验Undo元信息。 返回值类型:record 该接口仅为扩展预留接口,禁止使用。 父主题: 系统管理函数
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CREATE OR REPLACE PROCEDURE proc_case_branch(pi_result in integer, pi_return out integer) AS BEGIN CASE pi_result WHEN 1 THEN pi_return := 111; WHEN 2 THEN pi_return := 222; WHEN 3 THEN pi_return := 333; WHEN 6 THEN pi_return := 444; WHEN 7 THEN pi_return := 555; WHEN 8 THEN pi_return := 666; WHEN 9 THEN pi_return := 777; WHEN 10 THEN pi_return := 888; ELSE pi_return := 999; END CASE; raise info 'pi_return : %',pi_return ; END; / CALL proc_case_branch(3,0); --删除存储过程 DROP PROCEDURE proc_case_branch;
  • 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的缺省,则为真。 opckeytype oid PG_TYPE.oid 索引数据的类型,如果和opcintype相同则为零。 一个操作符类的opcmethod必须匹配包含它的操作符族的opfmethod。 父主题: 系统表
  • DB_CONSTRAINTS DB_CONSTRAINTS视图显示当前用户可访问的约束的信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_CONSTRAINTS字段 名称 类型 描述 owner character varyiny(64) 约束创建者。 constraint_name character varying(64) 约束名。 constraint_type text 约束类型: c表示检查约束。 f表示外键约束。 p表示主键约束。 u表示唯一约束。 table_name character varying(64) 约束相关的表名。 index_owner character varying(64) 约束相关的索引的所有者(只针对唯一约束和主键约束)。 index_name character varying(64) 约束相关的索引名(只针对唯一约束和主键约束)。 父主题: 系统视图
  • 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.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.APP_READ_CLIENT_INFO 读取client_info信息。 PKG_UTIL.APP_SET_CLIENT_INFO 设置client_info信息。 PKG_UTIL.LOB_CONVERTTOBLOB clob类型转换成blob类型。 PKG_UTIL.LOB_CONVERTTOCLOB blob类型转换成clob类型。 PKG_UTIL.LOB_RAWTOTEXT raw类型转成text类型。 PKG_UTIL.LOB_TEXTTORAW text类型转成raw类型。 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY 计算两个字符串的差距。 PKG_UTIL.RAW_CAST_TO_VARCHAR2 raw类型转成varchar2类型。 PKG_UTIL.SESSION_CLEAR_CONTEXT 清空session_context中的属性值。 PKG_UTIL.SESSION_SEARCH_CONTEXT 查找一个属性值。 PKG_UTIL.SESSION_SET_CONTEXT 设置一个属性值。 PKG_UTIL.UTILITY_FORMAT_CALL_STACK 查看存储过程的调用堆栈。 PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE 查看存储过程的错误堆栈。 PKG_UTIL.UTILITY_FORMAT_ERROR_STACK 查看存储过程的报错信息。 PKG_UTIL.UTILITY_GET_TIME 查看系统UNIX时间戳。 PKG_UTIL.LOB_GET_LENGTH 该函数LOB_GET_LENGTH获取输入数据的长度。 PKG_UTIL.LOB_GET_LENGTH函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 5 6 7 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 9 10 11 12 13 14 PKG_UTIL.LOB_WRITE( dest_lob INOUT blob, src_lob IN raw len IN int, start_pos IN int ) RETURN BLOB; PKG_UTIL.LOB_WRITE( dest_lob INOUT clob, src_lob IN varchar2 len IN int, start_pos IN int ) RETURN CLOB; 表4 PKG_UTIL.LOB_WRITE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob clob/blob INOUT 否 写入的目标对象。 src_lob clob/blob IN 否 被写入的源对象。 len int IN 否 源对象的写入长度。 start_pos int IN 否 目标对象的写入起始位置。 PKG_UTIL.LOB_APPEND 该函数LOB_APPEND将源blob/clob对象追加到目标blob/clob对象, 并返回目标对象。 PKG_UTIL.LOB_APPEND函数原型为: 1 2 3 4 5 6 7 8 9 10 11 12 13 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函数原型为: 1 2 3 4 5 6 7 8 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函数原型为: 1 2 3 4 5 6 7 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函数原型为: 1 2 3 4 5 6 7 PKG_UTIL.LOB_RESET( lob INOUT blob, len INOUT int, start IN int DEFAULT 1, 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.IO_PRINT 该函数IO_PRINT将一段字符串打印输出。 PKG_UTIL.IO_PRINT函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 PKG_UTIL.RAW_CAST_FROM_VARCHAR2( str IN varchar2 ) RETURN raw; 表11 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函数原型为: 1 2 3 4 5 PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER( value IN BIGINT, endianess IN INTEGER ) RETURN RAW; 表12 PKG_UTIL.RAW_CAST_FROM_BINARY_INTEGER接口参数说明 参数 类型 入参/出参 是否可以为空 描述 value BIGINT IN 否 需要转化的源数据。 endianess INTEGER IN 否 表示字典序的整型值,当前支持1或2(1代表BIG_ENDIAN,2代表LITTLE_ENDIAN)。 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER 该函数RAW_CAST_TO_BINARY_INTEGER将RAW转化为BINARY_INTEGER。 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER函数原型为: 1 2 3 4 5 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER( value IN RAW, endianess IN INTEGER ) RETURN INTEGER; 表13 PKG_UTIL.RAW_CAST_TO_BINARY_INTEGER接口参数说明 参数 类型 入参/出参 是否可以为空 描述 value RAW IN 否 需要转化的源数据。 endianess INTEGER IN 否 表示字典序的整型值,当前支持1或2(1代表BIG_ENDIAN,2代表LITTLE_ENDIAN)。 PKG_UTIL.RANDOM_SET_SEED 该函数RANDOM_SET_SEED设置随机数种子。 PKG_UTIL.RANDOM_SET_SEED函数原型为: 1 2 3 4 PKG_UTIL.RANDOM_SET_SEED( seed IN int ) RETURN integer; 表14 PKG_UTIL.RANDOM_SET_SEED接口参数说明 参数 类型 入参/出参 是否可以为空 描述 seed int IN 否 随机数种子。 PKG_UTIL.RANDOM_GET_VALUE 该函数RANDOM_GET_VALUE返回0~1区间的一个随机数,其有效数字为15位。 PKG_UTIL.RANDOM_GET_VALUE函数原型为: 1 2 3 PKG_UTIL.RANDOM_GET_VALUE( ) RETURN numeric; PKG_UTIL.FILE_SET_DIRNAME 设置当前操作的目录,基本上所有涉及单个目录的操作,都需要调用此方法先设置操作的目录。 PKG_UTIL.FILE_SET_DIRNAME函数原型为: 1 2 3 4 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函数原型为: 1 2 3 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函数原型为: 1 2 3 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 PKG_UTIL.FILE_READ( file IN integer, buffer OUT text, len IN bigint default 1024) 表19 PKG_UTIL.FILE_READ接口参数说明 参数 描述 file 通过调用OPEN打开的文件句柄,文件必须以读的模式打开,否则会抛出INVALID_OPERATION的异常。 buffer 用于接收数据的BUFFER。 len 从文件中读取的字节数。 PKG_UTIL.FILE_READLINE 根据指定的长度从一个打开的文件句柄中读取出一行数据。 PKG_UTIL.FILE_READLINE函数原型为: 1 2 3 4 PKG_UTIL.FILE_READLINE( file IN integer, buffer OUT text, len IN integer default NULL) 表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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 PKG_UTIL.FILE_NEWLINE( file in integer ) RETURN BOOL 表22 PKG_UTIL.FILE_NEWLINE接口参数说明 参数 描述 file 一个打开的文件句柄。 PKG_UTIL.FILE_WRITELINE 向一个打开的文件中写入一行。 PKG_UTIL.FILE_WRITELINE函数原型为: 1 2 3 4 5 PKG_UTIL.FILE_WRITELINE( file in integer, buffer in text ) RETURN BOOL 表23 PKG_UTIL.FILE_WRITELINE接口参数说明 参数 描述 file 一个打开的文件句柄。 buffer 要写入的内容。 PKG_UTIL.FILE_READ_RAW 从一个打开的文件句柄中读取指定长度的二进制数据,返回读取的二进制数据,返回类型为raw。 PKG_UTIL.FILE_READ_RAW函数原型为: 1 2 3 4 5 PKG_UTIL.FILE_READ_RAW( file in integer, length in integer default NULL ) RETURN raw 表24 PKG_UTIL.FILE_READ_RAW接口参数说明 参数 描述 file 一个打开的文件句柄。 length 要读取的长度,默认为NULL。默认情况下读取文件中所有数据,最大为1G。 PKG_UTIL.FILE_WRITE_RAW 向一个打开的文件中写入传入二进制对象RAW。插入成功返回true。 PKG_UTIL.FILE_WRITE_RAW函数原型为: 1 2 3 4 5 PKG_UTIL.FILE_WRITE_RAW( file in integer, r in raw ) RETURN BOOL 表25 PKG_UTIL.FILE_NEWLINE接口参数说明 参数 描述 file 一个打开的文件句柄。 r 准备传入文件的数据 说明: 对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。 PKG_UTIL.FILE_FLUSH 一个文件句柄中的数据要写入到物理文件中,缓冲区中的数据必须要有一个行终结符。当文件必须在打开时读取,刷新非常有用。例如,调试信息可以刷新到文件中,以便立即读取。 PKG_UTIL.FILE_FLUSH函数原型为: 1 2 3 4 PKG_UTIL.FILE_FLUSH( file in integer ) RETURN VOID 表26 PKG_UTIL.FILE_FLUSH接口参数说明 参数 描述 file 一个打开的文件句柄。 PKG_UTIL.FILE_CLOSE 关闭一个打开的文件句柄。 PKG_UTIL.FILE_CLOSE函数原型为: 1 2 3 4 PKG_UTIL.FILE_CLOSE( file in integer ) RETURN BOOL 表27 PKG_UTIL.FILE_CLOSE接口参数说明 参数 描述 file 一个打开的文件句柄。 PKG_UTIL.FILE_REMOVE 删除一个磁盘文件,操作的时候需要有充分的权限。 PKG_UTIL.FILE_REMOVE函数原型为: 1 2 3 4 PKG_UTIL.FILE_REMOVE( file_name in text ) RETURN VOID 表28 PKG_UTIL.FILE_REMOVE接口参数说明 参数 描述 filen_ame 要删除的文件名 PKG_UTIL.FILE_RENAME 对于磁盘上的文件进行重命名,类似UNIX的mv。 PKG_UTIL.FILE_RENAME函数原型为: 1 2 3 4 5 6 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) 表29 PKG_UTIL.FILE_RENAME接口参数说明 参数 描述 src_dir 源文件目录(大小写敏感)。 说明: 文件目录的位置,需要添加到系统表PG_DIRECTORY中,如果传入的路径和PG_DIRECTORY中的路径不匹配,会报路径不存在的错误,下面的涉及location作为参数的函数也是同样的情况。 在打开guc参数safe_data_path时,用户只能通过高级包读写safe_data_path指定文件路径下的文件。 src_file_name 源文件名。 dest_dir 目标文件目录(大小写敏感)。 说明: 文件目录的位置,需要添加到系统表PG_DIRECTORY中,如果传入的路径和PG_DIRECTORY中的路径不匹配,会报路径不存在的错误,下面的涉及location作为参数的函数也是同样的情况。 在打开guc参数safe_data_path时,用户只能通过高级包读写safe_data_path指定文件路径下的文件。 dest_file_name 目标文件名。 overwrite 默认是false,如果目的目录下存在一个同名的文件,不会进行重写。 PKG_UTIL.FILE_SIZE 返回指定的文件大小。 PKG_UTIL.FILE_SIZE函数原型为: 1 2 3 bigint PKG_UTIL.FILE_SIZE( file_name in text )return bigint 表30 PKG_UTIL.FILE_SIZE接口参数说明 参数 描述 file_name 文件名 PKG_UTIL.FILE_BLOCK_SIZE 返回指定的文件含有的块数量。 PKG_UTIL.FILE_BLOCK_SIZE函数原型为: 1 2 3 bigint PKG_UTIL.FILE_BLOCK_SIZE( file_name in text )return bigint 表31 PKG_UTIL.FILE_BLOCK_SIZE接口参数说明 参数 描述 file_name 文件名 PKG_UTIL.FILE_EXISTS 判断指定的文件是否存在。 PKG_UTIL.FILE_EXISTS函数原型为: 1 2 3 4 PKG_UTIL.FILE_EXISTS( file_name in text ) RETURN BOOL 表32 PKG_UTIL.FILE_EXISTS接口参数说明 参数 描述 file_name 文件名 PKG_UTIL.FILE_GETPOS 返回文件的偏移量,单位字节。 PKG_UTIL.FILE_GETPOS函数原型为: 1 2 3 4 PKG_UTIL.FILE_GETPOS( file in integer ) RETURN BIGINT 表33 PKG_UTIL.FILE_GETPOS接口参数说明 参数 描述 file 一个打开的文件句柄。 PKG_UTIL.FILE_SEEK 根据用户指定的字节数向前或者向后调整文件指针的位置。 PKG_UTIL.FILE_SEEK函数原型为: 1 2 3 4 5 void PKG_UTIL.FILE_SEEK( file in integer, start in bigint ) RETURN VOID 表34 PKG_UTIL.FILE_SEEK接口参数说明 参数 描述 file 一个打开的文件句柄。 start 文件偏移,字节。 PKG_UTIL.FILE_CLOSE_ALL 关闭一个会话中打开的所有的文件句柄。 PKG_UTIL.FILE_CLOSE_ALL函数原型为: PKG_UTIL.FILE_CLOSE_ALL( ) RETURN VOID↵ 表35 PKG_UTIL.FILE_CLOSE_ALL接口参数说明 参数 描述 无 无 PKG_UTIL.EXCEPTION_REPORT_ERROR 抛出一个异常。 PKG_UTIL.EXCEPTION_REPORT_ERROR函数原型为: 1 2 3 4 5 6 PKG_UTIL.EXCEPTION_REPORT_ERROR( code integer, log text, flag boolean DEFAULT false ) RETURN INTEGER 表36 PKG_UTIL.EXCEPTION_REPORT_ERROR接口参数说明 参数 描述 code 抛出异常所打印的错误码。 log 抛出异常所打印的日志提示信息。 flag 保留字段,默认为false。 PKG_UTIL.APP_READ_CLIENT_INFO 读取client_info信息。 PKG_UTIL.APP_READ_CLIENT_INFO函数原型为: 1 2 3 PKG_UTIL.APP_READ_CLIENT_INFO( OUT buffer text )return text 表37 PKG_UTIL.APP_READ_CLIENT_INFO接口参数说明 参数 描述 buffer 返回的client_info信息。 PKG_UTIL.APP_SET_CLIENT_INFO 设置client_info信息。 PKG_UTIL.APP_SET_CLIENT_INFO函数原型为: 1 2 3 PKG_UTIL.APP_SET_CLIENT_INFO( str text ) 表38 PKG_UTIL.APP_SET_CLIENT_INFO接口参数说明 参数 描述 str 要设置的client_info信息。 PKG_UTIL.LOB_CONVERTTOBLOB 将clob转成blob,amount为要转换的长度。 PKG_UTIL.LOB_CONVERTTOBLOB函数原型为: 1 2 3 4 5 6 7 PKG_UTIL.LOB_CONVERTTOBLOB( dest_lob blob, src_clob clob, amount integer, dest_offset integer, src_offset integer )return raw 表39 PKG_UTIL.LOB_CONVERTTOBLOB接口参数说明 参数 描述 dest_lob 目标lob。 src_clob 要转换的clob。 amount 转换的长度。 dest_offset 目标lob的起始位置。 src_offset 源clob的起始位置。 PKG_UTIL.LOB_CONVERTTOCLOB 将blob转成clob,amount为要转换的长度。 PKG_UTIL.LOB_CONVERTTOCLOB函数原型为: 1 2 3 4 5 6 7 PKG_UTIL.LOB_CONVERTTOCLOB( dest_lob clob, src_blob blob, amount integer, dest_offset integer, src_offset integer )return text 表40 PKG_UTIL.LOB_CONVERTTOCLOB接口参数说明 参数 描述 dest_lob 目标lob。 src_blob 要转换的blob。 amount 转换的长度。 dest_offset 目标lob的起始位置。 src_offset 源clob的起始位置。 PKG_UTIL.LOB_RAWTOTEXT 将RAW转成TEXT。 PKG_UTIL.LOB_RAWTOTEXT函数原型为: 1 2 3 4 PKG_UTIL.LOB_RAWTOTEXT( src_lob IN BLOB ) RETURN TEXT 表41 PKG_UTIL.LOB_RAWTOTEXT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 src_lob BLOB IN 否 要转换的lob数据。 PKG_UTIL.LOB_TEXTTORAW 将text转成raw。 PKG_UTIL.LOB_TEXTTORAW函数原型为: 1 2 3 4 PKG_UTIL.LOB_TEXTTORAW( src_lob clob ) RETURN raw 表42 PKG_UTIL.LOB_TEXTTORAW接口参数说明 参数 描述 src_lob 要转换的lob数据。 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY 计算两个字符串的差别。 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY函数原型为: 1 2 3 4 5 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY( str1 text, str2 text ) RETURN INTEGER 表43 PKG_UTIL.MATCH_EDIT_DISTANCE_SIMILARITY接口参数说明 参数 描述 str1 第一个字符串。 str2 第二个字符串。 PKG_UTIL.RAW_CAST_TO_VARCHAR2 raw类型转成varchar2。 PKG_UTIL.RAW_CAST_TO_VARCHAR2函数原型为: 1 2 3 4 PKG_UTIL.RAW_CAST_TO_VARCHAR2( str raw ) RETURN varchar2 表44 PKG_UTIL.RAW_CAST_TO_VARCHAR2接口参数说明 参数 描述 str 十六进制字符串 PKG_UTIL.SESSION_CLEAR_CONTEXT 清除session_context信息。 PKG_UTIL.SESSION_CLEAR_CONTEXT函数原型为: 1 2 3 4 5 6 PKG_UTIL.SESSION_CLEAR_CONTEXT( namespace text, client_identifier text, attribute text ) RETURN INTEGER 表45 PKG_UTIL.SESSION_CLEAR_CONTEXT接口参数说明 参数 描述 namespace 属性的命名空间。 client_identifier client_identifier,一般与namespace相同即可,当为null时,默认修改所有namespace。 attribute 要清除的属性值。 PKG_UTIL.SESSION_SEARCH_CONTEXT 查找属性值。 PKG_UTIL.SESSION_SEARCH_CONTEXT函数原型为: 1 2 3 4 5 PKG_UTIL.SESSION_SEARCH_CONTEXT( namespace text, attribute text ) RETURN INTEGER 表46 PKG_UTIL.SESSION_SEARCH_CONTEXT接口参数说明 参数 描述 namespace 属性的命名空间。 attribute 要清除的属性值。 PKG_UTIL.SESSION_SET_CONTEXT 设置属性值。 PKG_UTIL.SESSION_SET_CONTEXT函数原型为: 1 2 3 4 5 6 PKG_UTIL.SESSION_SET_CONTEXT( namespace text, attribute text, value text ) RETURN INTEGER 表47 PKG_UTIL.SESSION_SET_CONTEXT接口参数说明 参数 描述 namespace 属性的命名空间 attribute 要设置的属性 value 属性对应的值 PKG_UTIL.UTILITY_GET_TIME 打印UNIX时间戳。 PKG_UTIL.UTILITY_GET_TIME函数原型为: 1 2 PKG_UTIL.UTILITY_GET_TIME() RETURN bigint PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE 查看存储过程的错误堆栈。 PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE函数原型为: 1 2 PKG_UTIL.UTILITY_FORMAT_ERROR_BACKTRACE() RETURN text PKG_UTIL.UTILITY_FORMAT_ERROR_STACK 查看存储过程的报错信息。 PKG_UTIL.UTILITY_FORMAT_ERROR_STACK函数原型为: 1 2 PKG_UTIL.UTILITY_FORMAT_ERROR_STACK() RETURN text PKG_UTIL.UTILITY_FORMAT_CALL_STACK 查看存储过程调用堆栈。 PKG_UTIL.UTILITY_FORMAT_CALL_STACK函数原型为: 1 2 PKG_UTIL.UTILITY_FORMAT_CALL_STACK() RETURN text 父主题: 基础接口
  • 常见问题处理 connect to server failed: no such file or directory 此问题可能的原因: 配置了错误的/不可达的数据库地址,或者端口 请检查数据源配置中的Server及Port配置项。 服务器侦听不正确 如果确认Server及Port配置正确,请根据“操作步骤”中数据库服务器的相关配置,确保数据库侦听了合适的网卡及端口。 防火墙及网闸设备 请确认防火墙设置,将数据库的通信端口添加到可信端口中。 如果有网闸设备,请确认相关的设置。 The password-stored method is not supported. 此问题可能原因: 数据源中未配置sslmode配置项,请调整此项至allow或以上级别,允许SSL连接,此选项的更多说明,请参见表1。 authentication method 10 not supported. 使用开源客户端碰到此问题,可能原因: 数据库中存储的口令校验只存储了SHA256格式哈希,而开源客户端只识别MD5校验,双方校验方法不匹配报错。 数据库并不存储用户口令,只存储用户口令的哈希码。 当用户更新用户口令或者新建用户时,数据库会同时存储两种格式的哈希码,这时将兼容开源的认证协议。 但是当旧版本升级到新版本时,由于哈希的不可逆性,所以数据库无法还原用户口令,进而生成新格式的哈希,所以仍然只保留了SHA256格式的哈希,导致仍然无法使用MD5做口令认证。 MD5加密算法安全性低,存在安全风险,建议使用更安全的加密算法。 要解决该问题,可以更新用户口令(参见ALTER USER);或者新建一个用户(参见CREATE USER),赋予同等权限,使用新用户连接数据库。 unsupported frontend protocol 3.51: server supports 1.0 to 3.0 目标数据库版本过低,或者目标数据库为开源数据库。请使用对应版本的数据库驱动连接目标数据库。 FATAL: GSS authentication method is not allowed because XXXX user password is not disabled. 目标DN的pg_hba.conf里配置了当前客户端IP使用"gss"方式来做认证,该认证算法不支持用作客户端的身份认证,请修改到"sha256"后再试。
  • PG_STAT_USER_FUNCTIONS PG_STAT_USER_FUNCTIONS视图显示命名空间中用户自定义函数(函数语言为非内部语言)的状态信息。 表1 PG_STAT_USER_FUNCTIONS字段 名称 类型 描述 funcid oid 函数标识。 schemaname name 模式的名称。 funcname name 函数名称。 calls bigint 函数被调用的次数。 total_time double precision 函数的总执行时长。 self_time double precision 当前线程调用函数的总的时长。 父主题: 系统视图
  • GS_MATVIEW_DEPENDENCY GS_MATVIEW_DEPENDENCY系统表提供了关于数据库中每一个增量物化视图、基表和mlog表的关联信息。全量物化视图不存在与基表对应的mlog表,不会写入记录。 表1 GS_MATVIEW_DEPENDENCY字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 matviewid oid 物化视图的oid。 relid oid 物化视图基表的oid。 mlogid oid 物化视图mlog表的oid,mlog表为物化视图日志表,与基表一一对应。 mxmin int4 保留字段。 父主题: 系统表
  • _PG_FOREIGN_TABLES 存储所有的定义在本数据库的外部表信息。只显示当前用户有权访问的外部表信息。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_TABLES字段 名称 类型 描述 foreign_table_catalog information_schema.sql_identifier 外部表所在的数据库名称(永远是当前数据库)。 foreign_table_schema name 外部表的schema名称。 foreign_table_name name 外部表的名称。 ftoptions text[] 外部表的可选项。 foreign_server_catalog information_schema.sql_identifier 外部服务器所在的数据库名称(永远是当前数据库)。 foreign_server_name information_schema.sql_identifier 外部服务器的名称。 authorization_identifier information_schema.sql_identifier 所有者的角色名称。 父主题: Information Schema
  • ADM_COL_COMMENTS ADM_COL_COMMENTS视图显示数据库表中字段的注释信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_COL_COMMENTS字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_name character varying(64) 列名。 comments text 注释。 父主题: 系统视图
  • GS_GSC_MEMORY_DETAIL GS_GSC_MEMORY_DETAIL视图描述当前节点当前进程的全局SysCache的内存占用情况,仅在开启GSC的模式下有数据。 需要注意的是,由于这个查询是以数据库内存上下文分隔的,因此会缺少一部分内存的统计,缺失的内存统计对应的内存上下文名称为GlobalSysDBCache。 表1 GS_GSC_MEMORY_DETAIL字段 名称 类型 描述 db_id text 数据库id。 totalsize numeric 共享内存总大小,单位Byte。 freesize numeric 共享内存剩余大小,单位Byte。 usedsize numeric 共享内存使用大小,单位Byte。 父主题: 系统视图
  • PG_STATIO_USER_SEQUEN CES PG_STATIO_USER_SEQUENCES视图显示命名空间中所有用户关系表序列的I/O状态信息。 表1 PG_STATIO_USER_SEQUENCES字段 名称 类型 描述 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列命中缓存数。 父主题: 系统视图
  • 约束说明 job只能通过dbe_task高级包提供的接口进行创建、更新、删除操作,因为高级包的接口中会考虑所有数据库主节点间job信息的同步和pg_job与pg_job_proc表主键的关联操作,如果通过DML语句对pg_job表进行增删改,会导致job信息在数据库主节点间不一致和系统表无法关联变更的混乱问题,会严重影响job内部的管理。 由于用户创建的每个任务和数据库主节点绑定,当任务运行过程中,该数据库主节点故障,则该任务的状态无法实时刷新,仍为’r’状态,需要等数据库主节点启动正常后才能刷新为’s’状态。如果在任务未执行时数据库主节点故障,则该数据库主节点上的任务都得不到正常的调度和执行,需要人为干预让该数据库主节点恢复正常,或进行节点删除/替换、job才能正常的调度和执行。 job在定时执行过程中,需要在当前job所属的数据库主节点上实时更新该job的运行状态、最近执行开始时间、最近执行结束时间、下次开始时间、失败次数(如果job执行失败)等相关参数信息到pg_job系统表中,并同步到其他数据库主节点,保证job信息的一致性。如果其他数据库主节点存在节点故障,那么job所属数据库主节点会同步超时重发的处理,导致job执行时间变长,但数据库主节点间同步超时失败后,原数据库主节点上pg_job表中job的相关信息仍然能正常更新,且job能正常执行成功。当故障数据库主节点恢复正常后,可能出现该数据库主节点上pg_job表中当前job的执行时间、运行状态等参数与原数据库主节点上不一致的情况,需要原数据库主节点上再次执行该job后才能保证job信息的同步。 对于并发同时有多个job到达执行时间的场景,由于会为每个job创建一个线程来执行job,由于系统内部启动每个线程的时间会有延迟,因此会导致同时并发执行的job的开始时间有延迟,每个job的延迟时间在0.1ms左右。
  • 语法格式 COMMENT ON { AGGREGATE agg_name (agg_type [, ...] ) | CAST (source_type AS target_type) | COLLATION object_name | COLUMN { table_name.column_name | view_name.column_name } | CONSTRAINT constraint_name ON table_name | CONVERSION object_name | DATABASE object_name | DOMAIN object_name | EXTENSION object_name | FOREIGN DATA WRAPPER object_name | FOREIGN TABLE object_name | FUNCTION function_name ( [ {[ argname ] [ argmode ] argtype} [, ...] ] ) | INDEX object_name | LARGE OBJECT large_object_oid | OPERATOR operator_name (left_type, right_type) | OPERATOR CLASS object_name USING index_method | OPERATOR FAMILY object_name USING index_method | [ PROCEDURAL ] LANGUAGE object_name | ROLE object_name | SCHEMA object_name | SERVER object_name | TABLE object_name | TABLESPACE object_name | TEXT SEARCH CONFIGURATION object_name | TEXT SEARCH DICTIONARY object_name | TEXT SEARCH PARSER object_name | TEXT SEARCH TEMPLATE object_name | TYPE object_name | VIEW object_name | TRIGGER trigger_name ON table_name } IS 'text';
  • 注意事项 每个对象只存储一条注释,因此要修改一个注释,对同一个对象发出一条新的COMMENT命令即可。要删除注释,在文本字符串的位置写上NULL即可。当删除对象时,注释自动被删除掉。 目前注释浏览没有安全机制:任何连接到某数据库上的用户都可以看到所有该数据库对象的注释。共享对象(比如数据库、角色、表空间)的注释是全局存储的,连接到任何数据库的任何用户都可以看到它们。因此,不要在注释里存放与安全有关的敏感信息。 对大多数对象,只有对象的所有者或者被授予了对象COMMENT权限的用户可以设置注释,系统管理员默认拥有该权限。 角色没有所有者,所以COMMENT ON ROLE命令仅可以由系统管理员对系统管理员角色执行,有CREATEROLE权限的角色也可以为非系统管理员角色设置注释。系统管理员可以对所有对象进行注释。
  • 参数说明 agg_name 聚集函数的名称。 agg_type 聚集函数参数的类型。 source_type 类型转换的源数据类型。 target_type 类型转换的目标数据类型。 object_name 对象名。 table_name.column_name view_name.column_name 列名称。前缀可加表名称或者视图名称。 constraint_name 表约束的名称。 table_name 表的名称。 function_name 函数名称。 argname,argmode,argtype 函数参数的名称、模式、类型。 large_object_oid 大对象的OID。 operator_name 操作符名称。 left_type,right_type 操作参数的数据类型(可以用模式修饰)。当前置或者后置操作符不存在时,可以增加NONE选项。 trigger_name 触发器名称。 text 注释。
  • 示例 --创建一个角色,名为manager,密码为********。 openGauss=# CREATE ROLE manager IDENTIFIED BY '********'; --创建一个角色,从2015年1月1日开始生效,到2026年1月1日失效。 openGauss=# CREATE ROLE miriam WITH LOGIN PASSWORD '********' VALID BEGIN '2015-01-01' VALID UNTIL '2026-01-01'; --修改角色manager的密码为**********。 openGauss=# ALTER ROLE manager IDENTIFIED BY '**********' REPLACE '********'; --修改角色manager为系统管理员。 openGauss=# ALTER ROLE manager SYSADMIN; --删除角色manager。 openGauss=# DROP ROLE manager; --删除角色miriam。 openGauss=# DROP GROUP miriam;
  • 语法格式 CREATE ROLE role_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE }; 其中角色信息设置子句option语法为: {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | {LOGIN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {VCADMIN | NOVCADMIN} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN rol e_name [, ...] | USER role_name [, ...] | SYSID uid | DEFAULT TABLESPACE tablespace_name | PROFILE DEFAULT | PROFILE profile_name | PGUSER
  • GLOBAL_SHARED_MEMORY_DETAIL 查询数据库中所有正常节点下的共享内存上下文的使用信息。 表1 GLOBAL_SHARED_MEMORY_DETAIL字段 名称 类型 描述 node_name name 节点名称。 contextname text 内存上下文的名称。 level smallint 内存上下文的级别。 parent text 上级内存上下文。 totalsize bigint 共享内存总大小(单位:字节)。 freesize bigint 共享内存剩余大小(单位:字节)。 usedsize bigint 共享内存使用大小(单位:字节)。 父主题: Memory
  • DB_DEPENDENCIES DB_DEPENDENCIES视图显示当前用户可访问的函数、高级包之间的依赖关系。该视图同时存在于PG_CATALOG和SYS Schema下。 因为相关信息的限制,在目前 GaussDB 中,该表为一空表,表内没有任何记录。 表1 DB_DEPENDENCIES字段 名称 类型 描述 owner character varying(30) 对象的所有者。 name character varying(30) 对象的名称。 type character varying(17) 对象的类型。 referenced_owner character varying(30) 引用对象的所有者。 referenced_name character varying(64) 引用对象的名称。 referenced_type character varying(17) 引用对象的类型。 referenced_link_name character varying(128) 到引用对象的链接的名称。 schemaid numeric 当前schema的ID。 dependency_type character varying(4) 依赖类型(REF(软引用)或HARD(直接描述))。 父主题: 系统视图
  • 示例 --向gs_global_config系统表中插入单个弱口令。 openGauss=# CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('password1'); --向gs_global_config系统表中插入多个弱口令。 openGauss=# CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('password2'),('password3'); --清空gs_global_config系统表中所有弱口令。 openGauss=# DROP WEAK PASSWORD DICTIONARY; --查看现有弱口令。 openGauss=# SELECT * FROM gs_global_config WHERE NAME LIKE 'weak_password';
  • 什么是SQL SQL是用于访问和处理数据库的标准计算机语言。 SQL提供了各种任务的语句,包括: 查询数据。 在表中插入、更新和删除行。 创建、替换、更改和删除对象。 控制对数据库及其对象的访问。 保证数据库的一致性和完整性。 SQL语言由用于处理数据库和数据库对象的命令和函数组成。该语言还会强制实施有关数据类型、表达式和文本使用的规则。因此在SQL参考章节,除了SQL语法参考外,还会看到有关数据类型、表达式、函数和操作符等信息。
  • SQL发展简史 SQL发展简史如下: 1986年,ANSI X3.135-1986,ISO/IEC 9075:1986,SQL-86 1989年,ANSI X3.135-1989,ISO/IEC 9075:1989,SQL-89 1992年,ANSI X3.135-1992,ISO/IEC 9075:1992,SQL-92(SQL2) 1999年,ISO/IEC 9075:1999,SQL:1999 2003年,ISO/IEC 9075:2003,SQL:2003 2011年,ISO/IEC 9075:2011,SQL:2011 2016年,ISO/IEC 9075:2016,SQL:2016 2019年,ISO/IEC 9075:2019,SQL:2019
  • 参数 表1 SQLColAttribute参数 关键字 参数说明 StatementHandle 语句句柄。 ColumnNumber 要检索字段的列号,起始为1,依次递增。 FieldIdentifier IRD中ColumnNumber行的字段。 CharacterAttributePtr 输出参数:一个缓冲区指针,返回FieldIdentifier字段值。 BufferLength 如果FieldIdentifier是一个ODBC定义的字段,而且CharacterAttributePtr指向一个字符串或二进制缓冲区,则此参数为该缓冲区的长度。 如果FieldIdentifier是一个ODBC定义的字段,而且CharacterAttributePtr指向一个整数,则会忽略该字段。 StringLengthPtr 输出参数:缓冲区指针,存放*CharacterAttributePtr中字符类型数据的字节总数,对于非字符类型,忽略BufferLength的值。 NumericAttributePtr 输出参数:指向一个整型缓冲区的指针,返回IRD中ColumnNumber行FieldIdentifier字段的值。
  • 原型 1 2 3 4 5 6 7 SQLRETURN SQLColAttibute(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAtrriburePtr, SQLSMALLINT BufferLength, SQLSMALLINT *StringLengthPtr, SQLLEN *NumericAttributePtr);
  • DBE_PLDEBUGGER.step debug端调试过程中,如果当前执行的是一个存储过程,则进入该存储过程继续调试,返回该存储过程第一行的行号等信息,如果当前执行的不是存储过程,则和next行为一致,执行该sql后返回下一行的行号等信息。 表1 step入参和返回值列表 名称 类型 描述 funcoid OUT oid 函数ID funcname OUT text 函数名 lineno OUT integer 当前调试运行的下一行行号 query OUT text 当前调试的下一行函数源码 父主题: DBE_PLDEBUGGER Schema
  • PG_STATIO_USER_INDEXES PG_STATIO_USER_INDEXES视图显示命名空间中所有用户关系表索引的I/O状态信息。 表1 PG_STATIO_USER_INDEXES字段 名称 类型 描述 relid oid 该索引所在的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名. indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 父主题: 系统视图
  • 伪类型 GaussDB数据类型中包含一系列特殊用途的类型,这些类型按照类别被称为伪类型。伪类型不能作为字段的数据类型,但是可以用于声明函数的参数或者结果类型。 当一个函数不仅是简单地接受并返回某种SQL数据类型的情况下伪类型是很有用的。表1列出了所有的伪类型。 表1 伪类型 名称 描述 any 表示函数接受任何输入数据类型。 anyelement 表示函数接受任何数据类型。 anyarray 表示函数接受任意数组数据类型。 anynonarray 表示函数接受任意非数组数据类型。 anyenum 表示函数接受任意枚举数据类型。 anyrange 表示函数接受任意范围数据类型。 cstring 表示函数接受或者返回一个空结尾的C字符串。 internal 表示函数接受或者返回一种服务器内部的数据类型。 language_handler 声明一个过程语言调用句柄返回language_handler。 fdw_handler 声明一个外部数据封装器返回fdw_handler。 record 标识函数返回一个未声明的行类型。 trigger 声明一个触发器函数返回trigger。 void 表示函数不返回数值。 opaque 一个已经过时的类型,以前用于所有上面这些用途。 声明用C编写的函数(不管是内置的还是动态装载的)都可以接受或者返回任何这样的伪数据类型。当伪类型作为参数类型使用时,用户需要保证函数的正常运行。 用过程语言编写的函数只能使用实现语言允许的伪类型。目前,过程语言都不允许使用作为参数类型的伪类型,并且只允许使用void和record作为结果类型。一些多态的函数还支持使用anyelement、anyarray、anynonarray、anyenum和anyrange类型。 伪类型internal用于声明只能在数据库系统内部调用的函数,这些函数不能直接在SQL查询里调用。如果函数至少有一个internal类型的参数,则不能从SQL里调用。建议不要创建任何声明返回internal的函数,除非至少有一个internal类型的参数。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 --创建表。 openGauss=# create table t1 (a int); --插入两条数据。 openGauss=# insert into t1 values(1),(2); --创建函数showall()。 openGauss=# CREATE OR REPLACE FUNCTION showall() RETURNS SETOF record AS $$ SELECT count(*) from t1; $$ LANGUAGE SQL; --调用函数showall()。 openGauss=# SELECT showall(); showall --------- (2) (1 row) --删除函数。 openGauss=# DROP FUNCTION showall(); --删除表。 openGauss=# drop table t1; 父主题: 数据类型
  • 示例 --创建表。 openGauss=# CREATE TABLE my_table (c1 int, c2 int); --创建名为my_mv的物化视图。 openGauss=# CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM my_table; --删除名为my_mv的物化视图。 openGauss=# DROP MATERIALIZED VIEW my_mv; --删除表。 openGauss=# DROP TABLE my_table;
  • 权限设计规范 【规则】数据库初始用户连接和访问数据库应作为DBA管理用途,不允许业务直接使用该数据库用户连接和访问数据库。 数据库初始用户,即数据库的安装用户,与数据库所属的操作系统用户同名。 【规则】数据库初始用户为业务创建用户和数据库,业务使用所创建的用户登录和访问数据库。 【规则】合理对角色和用户赋权,应使用最小化权限原则。 【建议】通过角色而不是用户来管理权限。 使用角色管理权限,即在角色中配置权限,再将角色赋予用户。 通过角色管理权限,更便于多用户、用户变更等场景下的权限管理。例如: 角色和用户为多对多关系,一个角色可以赋予多个用户,修改角色中的权限,被赋予角色的用户权限就可以同时更新。 删除用户时,不会影响到角色。 新建用户后可以通过赋予角色快速获取所需权限。 【建议】在删除指定数据库时,应回收用户对该数据库的CONNECT权限,避免删除时仍然存在活跃的数据库连接而失败。 父主题: 数据库设计规范
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全