华为云用户手册

  • vector_eq 功能说明:比较向量是否相等。 入参1的类型:floatvector 入参2的类型:floatvector 出参类型:BOOLEAN 代码示例: gaussdb=# SELECT vector_eq(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]')); gaussdb=# SELECT vector_eq('[1,2,3]', '[5,-1,3.5]');
  • vector_ne 功能说明:比较两个向量是否不等。 入参1的类型:floatvector 入参2的类型:floatvector 出参类型:BOOLEAN 代码示例: gaussdb=# SELECT vector_ne(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]')); gaussdb=# SELECT vector_ne('[1,2,3]', '[5,-1,3.5]');
  • vector_negative_inner_product 功能说明:计算两个向量的负内积。 入参1的类型:floatvector 入参2的类型:floatvector 出参类型:float8 代码示例: gaussdb=# SELECT vector_negative_inner_product(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]')); gaussdb=# SELECT vector_negative_inner_product('[1,2,3]', '[5,-1,3.5]');
  • vector_sub 功能说明:计算两个向量相减。 入参1的类型:floatvector 入参2的类型:floatvector 出参类型:floatvector 代码示例: gaussdb=# SELECT vector_sub(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]')); gaussdb=# SELECT vector_sub('[1,2,3]', '[5,-1,3.5]');
  • inner_product 功能说明:计算两个向量的内积。 入参1的类型:floatvector 入参2的类型:floatvector 出参类型:float8 代码示例: gaussdb=# SELECT inner_product(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]')); gaussdb=# SELECT inner_product('[1,2,3]', '[5,-1,3.5]');
  • vector_cmp 功能说明:比较向量大小。 入参1的类型:floatvector 入参2的类型:floatvector 出参类型:int4 代码示例: gaussdb=# SELECT vector_cmp(floatvector('[1,2,3]'), floatvector('[5,-1,3.5]')); gaussdb=# SELECT vector_cmp('[1,2,3]', '[5,-1,3.5]');
  • DBE_SQL_UTIL.create_hint_sql_patch create_hint_sql_patch是用于创建调优SQL PATCH的接口函数,返回执行是否成功,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.create_hint_sql_patch入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 unique_sql_id IN bigint 查询全局唯一id。 hint_string IN text Hint文本。 description IN text PATCH的备注,默认值为NULL。 enabled IN bool PATCH是否生效,默认值为true。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
  • 执行SQL语句 通过连接对象,使用PQexec函数执行SQL查询语句。可以执行各种类型的SQL查询,例如SELECT查询、插入数据、更新数据、删除数据等。但如果同时执行多个SQL语句作为一个事务,应该使用事务控制功能,例如执行BEGIN、COMMIT、ROLLBACK 等SQL语句来控制事务的开始、提交和回滚。同时也需要注意执行SQL查询后的错误处理。 示例如下(完整示例请参考数据库建连、执行SQL并返回结果): /* * 连接成功后 * 测试实例涉及游标的使用时候必须使用事务块 * 把全部放在一个 "select * from pg_database" * PQexec() 里,过于简单,不推荐使用 */ /* 开始一个事务块 */ res = PQexec(conn, "BEGIN"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { fprintf(stderr, "BEGIN command failed: %s", PQerrorMessage(conn)); PQclear(res); exit_nicely(conn); } /* * 在结果不需要的时候PQclear PGresult,以避免内存泄漏 */ PQclear(res); /* * 从系统表 pg_database(数据库的系统目录)里抓取数据 */ res = PQexec(conn, "DECLARE myportal CURSOR FOR select * from pg_database"); if (PQresultStatus(res) != PGRES_COMMAND_OK) { fprintf(stderr, "DECLARE CURSOR failed: %s", PQerrorMessage(conn)); PQclear(res); exit_nicely(conn); } PQclear(res); res = PQexec(conn, "FETCH ALL in myportal"); if (PQresultStatus(res) != PGRES_TUPLES_OK) { fprintf(stderr, "FETCH ALL failed: %s", PQerrorMessage(conn)); PQclear(res); exit_nicely(conn); } 父主题: 开发步骤
  • 示例 --创建数据表all_data。 gaussdb=# CREATE TABLE all_data(id int, role varchar(100), data varchar(100)); --创建行访问控制策略。 gaussdb=# CREATE ROW LEVEL SECURITY POLICY all_data_rls ON all_data USING(role = CURRENT_USER); --删除行访问控制策略。 gaussdb=# DROP ROW LEVEL SECURITY POLICY all_data_rls ON all_data; --删除数据表all_data。 gaussdb=# DROP TABLE all_data;
  • DBE_PLDEBUGGER.next 执行存储过程中当前的sql,返回执行的下一条的行数和对应query,如表1所示。 表1 next返回值列表 名称 类型 描述 funcoid OUT oid 函数id。 funcname OUT text 函数名。 lineno OUT integer 当前调试运行的下一行行号。 query OUT text 当前调试的下一行函数源码。 父主题: DBE_PLDEBUGGER Schema
  • CLASS_VITAL_INFO CLASS_VITAL_INFO视图用于做WDR时校验相同的表或者索引的oid是否一致,如表1所示。 表1 CLASS_VITAL_INFO字段 名称 类型 描述 relid oid 表的oid。 schemaname name schema名称。 relname name 表名。 relkind "char" 表示对象类型,取值范围如下: r:表示普通表。 t:表示toast表。 i:表示索引。 last_updated timestamp with time zone 视图中该对象监控数据最后一次更新的时间。 父主题: Utility
  • GS_ILM_TASK GS_ILM_TASK系统表记录ADO Task的主体信息(创建时间、开始完成时间、执行状态等)。 表1 GS_ILM_TASK字段 名称 类型 描述 taskoid bigint ADO Task的oid。 creator oid ADO Task发起人。 createtime timestamp with time zone 创建时间。 starttime timestamp with time zone 启动时间。 completetime timestamp with time zone 完成时间。 executestate smallint 取值范围: 1:'INACTIVE' 2:'ACTIVE' 3:'COMPLETED' flag smallint 预留字段。 父主题: OLTP表压缩
  • GS_ROLES GS_ROLES视图显示数据库角色的相关信息。初始化用户和具有sysadmin属性或createrole属性的用户可以查看全部角色的信息,其他用户只能查看自己的信息。 表1 GS_ROLES字段 名称 类型 引用 描述 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 - 密文存储后的用户密码,始终为********。 rolvalidbegin timestamp with time zone - 账户的有效开始时间。如果没有设置有效开始时间,则为NULL。 rolvaliduntil timestamp with time zone - 账户的有效结束时间。如果没有设置有效结束时间,则为NULL。 rolrespool name - 用户可以使用的资源池。 rolparentid oid PG_AUTHID.rolparentid 用户所在组用户的OID。 roltabspace text - 用户永久表的存储空间限额,单位KB。 rolconfig text[] PG_DB_ROLE_SETTING.setconfig 运行时配置项的默认值。 oid oid PG_AUTHID.oid 角色的id。 roluseft boolean PG_AUTHID.roluseft 角色是否可以操作外表。 t(true):表示是。 f(false):表示否。 rolkind "char" - 角色类型。 n:普通用户,即非永久用户。 p:永久用户。 nodegroup name - 该字段不支持。 roltempspace text - 用户临时表的存储空间限额,单位为KB。 rolspillspace text - 用户算子的落盘空间限额,单位为KB。 rolmonitoradmin boolean - 该角色是否为监控管理员。 t(true):表示是。 f(false):表示否。 roloperatoradmin boolean - 该角色是否为运维管理员。 t(true):表示是。 f(false):表示否。 rolpolicyadmin boolean - 该角色是否为安全策略管理员。 t(true):表示是。 f(false):表示否。 父主题: 用户和权限管理
  • 原型 PGresult* PQexecParamsBatch(PGconn* conn, const char* command, int nParams, int nBatch, const Oid* paramTypes, const char* const* paramValues, const int* paramLengths, const int* paramFormats, int resultFormat);
  • 参数 表1 PQexecParamsBatch参数 关键字 参数说明 conn 连接句柄。 command SQL文本串。 nParams 绑定参数的个数 nBatch 批量操作数。 paramTypes 绑定参数的类型。 paramValues 绑定参数的值。 paramLengths 参数长度。 paramFormats 参数格式(文本或二进制)。 resultFormat 返回结果格式(文本或二进制)。
  • MY_PART_KEY_COLUMNS MY_PART_KEY_COLUMNS视图显示了当前用户拥有的分区表或分区索引的分区键列的相关信息。该视图所有用户可访问,仅可查看当前用户所属信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 MY_PART_KEY_COLUMNS字段 名称 类型 描述 name character varying(128) 分区表名或索引名。 object_type character(5) 对象类型。 若分区为分区表,此列为table。 若分区为分区索引,此列为index。 column_name character varying(4000) 分区表或索引的键列名。 column_position numeric 列在分区中的位置。 collated_column_id numeric 暂不支持,值为NULL。 父主题: 分区表
  • Configuration settings Configuration settings列名称及描述如表1所示。 表1 Configuration settings报表主要内容 列名称 描述 Name GUC名称。 Abstract GUC描述。 Type 数据类型。 Current Value 当前值。 Min Value 合法最小值。 Max Value 合法最大值。 Category GUC类别。 Enum Values 如果是枚举值,列举所有枚举值。 Default Value 数据库启动时参数默认值。 Reset Value 数据库重置时参数默认值。 父主题: WDR报告信息介绍
  • 注意事项 只有数据库所有者或者被授予了数据库DROP权限的用户有权限执行DROP DATABASE命令,系统管理员默认拥有此权限。 不能对系统默认安装的四个数据库(POSTGRES、TEMPLATE0、TEMPLATE1和TEMPLATEA)执行删除操作,系统做了保护。如果想查看当前服务中有哪几个数据库,可以用gsql的\l命令查看。 如果有用户正在与要删除的数据库连接,则删除操作失败。可以通过视图DV_SESSIONS查看当前有哪些数据库连接。 不能在事务块中执行DROP DATABASE命令。 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS。 DROP DATABASE一旦执行将无法撤销,请谨慎使用。
  • GS_SEG_SPC_REMAIN_SEGMENTS GS_SEG_SPC_REMAIN_SEGMENTS获取索引表空间残留的段信息,包含main fork、fsm fork、vm fork段。只支持管理员权限用户查询。 表1 GS_SEG_SPC_REMAIN_SEGMENTS字段 名称 类型 描述 node_name text 节点名称。 tablespace_name name 表空间名称。 file_id integer 数据文件标识。取值范围:[1,5]的int4值。 bucketnode integer 0~1023表示hashbucket表的bucketnode。 1024表示段页式普通表的bucketnode。 1025表示段页式全局临时表的bucketnode。 1026表示段页式unlogged表的bucketnode。 1027表示段页式本地临时表的bucketnode。 forknum integer 段对象的分支类型,取值范围: 0表示main fork。 1表示fsm fork。 2表示vm fork。 block_id bigint 数据扩展的起始页面号。 blocks integer 数据扩展大小,取值:1,8,128,1024,4096。 contents text 数据文件的存储内容,取值范围: permanent:永久。 unlogged:不记录日志。 temporary:全局临时。 temporary2:本地临时。 in_used text 是否已分配,取值Y/N。 mapblock_location text 扩展在map block中的位置,格式(page_id, offset)。 head_file_id integer 段头文件标识。 head_block_id bigint 段头页面号。 usage_type text 扩展的使用类型,取值范围: segment head表示段头。 fork head表示分支头。 level1 page表示level页面。 data extent表示数据扩展。 remain_flag text 是否为shrink残留扩展,取值Y/N。 special_data integer 扩展对应反向指针的特殊数据区。 ipblock_location text 扩展反向指针位置,格式:(block_id, offset)。 父主题: 段页式存储
  • PG_AVAILABLE_EXTENSIONS PG_AVAILABLE_EXTENSIONS视图显示数据库中某些特性的扩展信息。该视图为内部使用,不建议用户使用。 表1 PG_AVAILABLE_EXTENSIONS字段 名称 类型 描述 name name 扩展名。 default_version text 缺省版本的名称,如果没有指定则为NULL。 installed_version text 扩展当前安装版本,如果没有安装任何版本则为NULL。 comment text 扩展的控制文件中的评论。 父主题: 其他系统视图
  • SUMMARY_STAT_SYS_INDEXES 显示数据库各节点pg_catalog、information_schema以及pg_toast模式中所有系统表的索引状态信息的汇总求和结果,如表1所示。 表1 SUMMARY_STAT_SYS_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: Object
  • DBE_SQL_UTIL.enable_sql_patch enable_sql_patch是用于开启SQL PATCH的接口函数,返回执行是否成功,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.enable_sql_patch入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
  • 数组函数 array_append(anyarray, anyelement) 描述:向数组末尾添加元素,只支持一维数组。 返回类型:anyarray 示例: 1 2 3 4 5 gaussdb=# SELECT array_append(ARRAY[1,2], 3) AS RESULT; result --------- {1,2,3} (1 row) array_prepend(anyelement, anyarray) 描述:向数组开头添加元素,只支持一维数组。 返回类型:anyarray 示例: 1 2 3 4 5 gaussdb=# SELECT array_prepend(1, ARRAY[2,3]) AS RESULT; result --------- {1,2,3} (1 row) array_cat(anyarray, anyarray) 描述:连接两个数组,支持多维数组。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_cat(ARRAY[1,2,3], ARRAY[4,5]) AS RESULT; result ------------- {1,2,3,4,5} (1 row) gaussdb=# SELECT array_cat(ARRAY[[1,2],[4,5]], ARRAY[6,7]) AS RESULT; result --------------------- {{1,2},{4,5},{6,7}} (1 row) array_union(anyarray, anyarray) 描述:连接两个数组,只支持一维数组。有入参为NULL时返回另一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_union(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2,3,3,4,5} (1 row) gaussdb=# SELECT array_union(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) array_union_distinct(anyarray, anyarray) 描述:连接两个数组,并去重,只支持一维数组。有入参为NULL时返回另一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_union_distinct(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2,3,4,5} (1 row) gaussdb=# SELECT array_union_distinct(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) array_intersect(anyarray, anyarray) 描述:两个数组取交集,只支持一维数组。有入参为NULL时返回NULL。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_intersect(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {3} (1 row) gaussdb=# SELECT array_intersect(ARRAY[1,2,3], NULL) AS RESULT; result -------- (1 row) array_intersect_distinct(anyarray, anyarray) 描述:两个数组取交集,并去重,只支持一维数组。有入参为NULL时返回NULL。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_intersect_distinct(ARRAY[1,2,2], ARRAY[2,2,4,5]) AS RESULT; result ------------- {2} (1 row) gaussdb=# SELECT array_intersect_distinct(ARRAY[1,2,3], NULL) AS RESULT; result -------- (1 row) array_except(anyarray, anyarray) 描述:两个数组取差,只支持一维数组。第一个入参为NULL时返回NULL, 第二个入参为NULL时返回第一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT array_except(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2} (1 row) gaussdb=# SELECT array_except(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) gaussdb=# SELECT array_except(NULL, ARRAY[3,4,5]) AS RESULT; result -------- (1 row) array_except_distinct(anyarray, anyarray) 描述:两个数组取差,并去重,只支持一维数组。第一个入参为NULL时返回NULL, 第二个入参为NULL时返回第一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT array_except_distinct(ARRAY[1,2,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2} (1 row) gaussdb=# SELECT array_except_distinct(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) gaussdb=# SELECT array_except_distinct(NULL, ARRAY[3,4,5]) AS RESULT; result -------- (1 row) array_ndims(anyarray) 描述:返回数组的维数。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_ndims(ARRAY[[1,2,3], [4,5,6]]) AS RESULT; result -------- 2 (1 row) array_dims(anyarray) 描述:返回数组各个维度中的低位下标值和高位下标值。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT array_dims(ARRAY[[1,2,3], [4,5,6]]) AS RESULT; result ------------ [1:2][1:3] (1 row) array_length(anyarray, int) 描述:返回指定数组维度的长度。int为指定数组维度。 返回类型:int 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_length(array[1,2,3], 1) AS RESULT; result -------- 3 (1 row) gaussdb=# SELECT array_length(array[[1,2,3],[4,5,6]], 2) AS RESULT; result -------- 3 (1 row) array_lower(anyarray, int) 描述:返回指定数组维数的下界。int为指定数组维度。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_lower('[0:2]={1,2,3}'::int[], 1) AS RESULT; result -------- 0 (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL。 array_sort(anyarray) 描述:返回从小到大排列好的数组。只支持一维anyarray数组排序,多维数组返回NULL值。目前暂不支持record、xml、xmltype、json类型数组排序。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 gaussdb=# SELECT array_sort(ARRAY[5,1,3,6,2,7]) AS RESULT; result ------------- {1,2,3,5,6,7} (1 row) gaussdb=# SELECT array_sort(array[array[1,23], array[1,34]]); array_sort ------------- {NULL,NULL} (1 row) array_upper(anyarray, int) 描述:返回指定数组维数的上界。int为指定数组维度。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_upper(ARRAY[1,8,3,7], 1) AS RESULT; result -------- 4 (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL。 array_to_string(anyarray, text [, text]) 描述:使用第一个text作为数组的新分隔符,使用第二个text替换数组值为NULL的值。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*') AS RESULT; result ----------- 1,2,3,*,5 (1 row) array_delete(anyarray) 描述:清空数组中的元素并返回一个同类型的空数组。 返回类型:anyarray 示例: gaussdb=# SELECT array_delete(ARRAY[1,8,3,7]) AS RESULT; result -------- {} (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL。 array_deleteidx(anyarray, int) 描述:从数组中删除指定下标的元素并返回剩余元素组成的数组。 返回类型:anyarray 示例: gaussdb=# SELECT array_deleteidx(ARRAY[1,2,3,4,5], 1) AS RESULT; result ----------- {2,3,4,5} (1 row) array_deleteidx(anyarray, int)此函数在参数a_format_version值为10c和a_format_dev_version值为s1的情况下被禁用。 在开启varray_compat参数后,如果第一个参数为null会报错Reference to uninitialized collection,第二个参数为null返回原数组,未开启该参数时,参数有一个为null则返回null;若第二个参数小于等于0时开启参数后会报错Subscript outside of limit,开启前返回原数组;若第二个参数大于该数组元素数量时(包括0即空数组)开启参数后会报错Subcript outside of count开启前返回原数组。 array_extendnull(anyarray, int) 描述:往数组尾部添加指定个数的NULL空元素。 返回类型:anyarray 示例: gaussdb=# SELECT array_extendnull(ARRAY[1,8,3,7],1) AS RESULT; result -------------- {1,8,3,7,null} (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL;如果第二个参数为NULL,开启参数前返回NULL,开启后返回原数组;若第二个参数小于0开启参数后报错numeric or value error开启前返回原数组。 array_extendnull(anyarray, int, int) 描述:往数组尾部添加指定个数的指定索引的元素。 返回类型:anyarray 示例: gaussdb=# SELECT array_extendnull(ARRAY[1,8,3,7],2,2) AS RESULT; result -------------- {1,8,3,7,8,8} (1 row) array_extendnull(anyarray, int, int)此函数在参数a_format_version值为10c和a_format_dev_version值为s1的情况下有效。 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL;如果第二个参数或者第三个参数为NULL,开启参数前返回NULL,开启后返回原数组。 array_trim(anyarray, int) 描述:从数组尾部删除指定个数个元素。 返回类型:anyarray 示例: gaussdb=# SELECT array_trim(ARRAY[1,8,3,7],1) AS RESULT; result --------- {1,8,3} (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL;如果第二个参数为NULL,开启参数前返回NULL,开启后返回原数组;如果第二个参数超过数组元素个数(包括0即空数组)时开启参数后会报错Subscipt outside of count,开启前返回空数组,如果第二个参数小于0开启后报错numeric or value error,开启前返回原数组。 array_exists(anyarray, int) 描述:检查第二个参数是否是数组的合法下标。 返回类型:boolean 示例: gaussdb=# SELECT array_exists(ARRAY[1,8,3,7],1) AS RESULT; result -------- t (1 row) array_next(anyarray, int) 描述:根据第二个入参返回数组中指定下标元素的下一个元素的下标。 返回类型:int 示例: gaussdb=# SELECT array_next(ARRAY[1,8,3,7],1) AS RESULT; result -------- 2 (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL。 array_prior(anyarray, int) 描述:根据第二个入参返回数组中指定下标元素的上一个元素的下标。 返回类型:int 示例: gaussdb=# SELECT array_prior(ARRAY[1,8,3,7],2) AS RESULT; result -------- 1 (1 row) 如果第一个参数为null开启参数varray_compat后会报错Reference to uninitialized collection,开启前返回NULL。 string_to_array(text, text [, text]) 描述:使用第二个text指定分隔符,使用第三个可选的text作为NULL值替换模板,如果分隔后的子串与第三个可选的text完全匹配,则将其替换为NULL。 返回类型:text[] 示例: 1 2 3 4 5 6 7 8 9 10 gaussdb=# SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'yy') AS RESULT; result -------------- {xx,NULL,zz} (1 row) gaussdb=# SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'y') AS RESULT; result ------------ {xx,yy,zz} (1 row) unnest(anyarray) 描述:扩大一个数组为一组行。 返回类型:setof anyelement 示例: 1 2 3 4 5 6 gaussdb=# SELECT unnest(ARRAY[1,2]) AS RESULT; result -------- 1 2 (2 rows)
  • 分页查询 语法如下: SELECT query_list FROM table_name [ LIMIT { [offset,] count | ALL } ] offset :表示从第几行向后开始。 count:表示向后查询几条数据。 ALL:表示向后查询所有的数据。 -- 建表并插入100条数据。 gaussdb=# CREATE TABLE testl(id int PRIMARY KEY, flag varchar(10)); gaussdb=# INSERT INTO testl (id, flag) VALUES (generate_series(1,100),'flag'||generate_series(1,100)); --查询前5条数据。 gaussdb=# SELECT * FROM testl ORDER BY 1 LIMIT 5; id | flag ----+------- 1 | flag1 2 | flag2 3 | flag3 4 | flag4 5 | flag5 (5 rows) --从第20条向后查询4条数据。 gaussdb=# SELECT * FROM testl ORDER BY 1 LIMIT 20,4; id | flag ----+-------- 21 | flag21 22 | flag22 23 | flag23 24 | flag24 (4 rows) --从第96条向后查询出所有数据。 gaussdb=# SELECT * FROM testl ORDER BY 1 LIMIT 96,ALL; id | flag -----+--------- 97 | flag97 98 | flag98 99 | flag99 100 | flag100 (4 rows) --删除。 gaussdb=# DROP TABLE testl; 父主题: SELECT
  • 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.RANDOM_SET_SEED 设置一个随机数种子。 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_RESET 清空一个LOB类型的数据。 PKG_UTIL.LOB_TEXTTORAW TEXT类型转成raw类型。 PKG_UTIL.LOB_RAWTOTEXT raw类型转成TEXT类型。 PKG_UTIL.LOB_WRITE 将数据写入LOB类型。 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.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的状态,从会话中释放与以前运行的每个PL/SQL程序关联的所有内存。 PKG_UTIL.LOB_GET_LENGTH 该函数LOB_GET_LENGTH获取输入数据的长度。 PKG_UTIL.LOB_GET_LENGTH函数原型为: 1 2 3 4 5 6 7 8 9 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函数原型为: 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 BIGINT ) RETURN BLOB; PKG_UTIL.LOB_WRITE( dest_lob INOUT CLOB, src_lob IN VARCHAR2 len 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 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 是 src中读取并append到dest上的长度,默认null,将src全部append上去。 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.LOB_GET_LENGTH 该函数获取并返回指定的LOB类型对象的长度。 PKG_UTIL.LOB_GET_LENGTH函数原型为: 1 2 3 4 5 6 7 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 9 10 11 12 13 14 15 16 17 18 19 20 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 9 10 11 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函数原型为: 1 2 3 4 PKG_UTIL.LOB_APPEND_HUGE( dest_lob INOUT BLOB, src_lob IN BLOB) RETURN BLOB; 1 2 3 4 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函数原型为: 1 2 3 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 9 10 11 12 13 14 15 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函数原型为: 1 2 3 4 5 6 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 5 6 7 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函数原型为: 1 2 3 4 5 6 7 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函数原型为: 1 2 3 4 5 6 7 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函数原型为: 1 2 3 4 5 6 7 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函数原型为: 1 2 3 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 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 9 10 11 12 13 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 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函数原型为: 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 表31 PKG_UTIL.FILE_SET_DIRNAME接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dirname TEXT IN 否 文件的目录位置,这个字符串是一个目录对象名。 说明: 文件目录的位置,需要添加到系统表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) 表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函数原型为: 1 2 3 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 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 IN 否 用于接收数据的BUFFER。 len BIGINT IN 是 从文件中读取的字节数。 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) 表36 PKG_UTIL.FILE_READLINE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 通过调用OPEN打开的文件句柄,文件必须以读的模式打开,否则会抛出INVALID_OPERATION的异常。 buffer TEXT IN 否 用于接收数据的BUFFER。 len INTEGER IN 是 从文件中读取的字节数,默认是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 表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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 5 PKG_UTIL.FILE_WRITE_RAW( file IN INTEGER, r IN RAW ) RETURN BOOL 表41 PKG_UTIL.FILE_NEWLINE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 file INTEGER IN 否 一个打开的文件句柄。 r RAW IN 是 准备传入文件的数据 说明: 对于写操作,会检测文件类型,如果写入elf文件,将会报错并退出。 PKG_UTIL.FILE_FLUSH 一个文件句柄中的数据要写入到物理文件中,缓冲区中的数据必须要有一个行终结符。当文件必须在打开时读取,刷新非常有用。例如,调试信息可以刷新到文件中,以便立即读取。 PKG_UTIL.FILE_FLUSH函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 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函数原型为: 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) 表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函数原型为: 1 2 3 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函数原型为: 1 2 3 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 5 6 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函数原型为: 1 2 3 PKG_UTIL.app_read_client_info( OUT buffer TEXT )RETURN TEXT 表53 PKG_UTIL.APP_READ_CLIENT_INFO接口参数说明 参数 类型 入参/出参 是否可以为空 描述 buffer TEXT IN 否 返回的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 ) 表54 PKG_UTIL.APP_SET_CLIENT_INFO接口参数说明 参数 类型 入参/出参 是否可以为空 描述 str TEXT IN 否 要设置的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 表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.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 表56 PKG_UTIL.LOB_CONVERTTOCLOB接口参数说明 参数 类型 入参/出参 是否可以为空 描述 dest_lob CLOB IN 否 目标LOB。 src_blob BLOB IN 否 要转换的CLOB。 amount INTEGER IN 否 转换的长度。 dest_offset INTEGER IN 否 目标LOB的起始位置。 src_offset INTEGER IN 否 源CLOB的起始位置。 PKG_UTIL.LOB_TEXTTORAW 将TEXT转成RAW。 PKG_UTIL.LOB_TEXTTORAW函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 5 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函数原型为: 1 2 3 4 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函数原型为: 1 2 3 4 5 6 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时,默认修改所有namespace。 attribute TEXT IN 否 要清除的属性值。 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 表62 PKG_UTIL.SESSION_SEARCH_CONTEXT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 namespace TEXT IN 否 属性的命名空间。 attribute TEXT IN 否 要查找的属性值。 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 表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函数原型为: 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_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 INT IN 是 重试次数。 PKG_UTIL.UTILITY_FORMAT_CALL_STACK 查看存储过程调用堆栈。 PKG_UTIL.UTILITY_FORMAT_CALL_STACK函数原型为: 1 2 PKG_UTIL.UTILITY_FORMAT_CALL_STACK() RETURN TEXT 示例: -- 删除schema drop schema if exists pkg_var_test cascade; -- 创建pkg_var_test create schema pkg_var_test; -- 设置schema和参数 set current_schema = pkg_var_test; -- 创建包 create or replace package test_pkg as referenced_var int; unreferenced_var int; end test_pkg; / -- 创建函数 create or replace function test_func return int is begin return 1; end; / -- 创建存储过程 create or replace procedure test_proc is proc_var int; begin proc_var := 1; end; / -- 重编译pkg_var_test下的包 函数和存储过程 call pkg_util.utility_compile_schema('pkg_var_test'); 或者 call pkg_util.gs_compile_schema(' ',false,2); -- 删掉pkg_var_test drop schema if exists pkg_var_test cascade; 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); BEGIN PKG_UTIL.APP_READ_MODULE(module); DBE_OUTPUT.PRINT_LINE(module); END; / set module ANONYMOUS 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); BEGIN PKG_UTIL.APP_READ_ACTION(action); DBE_OUTPUT.PRINT_LINE(action); END; / set action ANONYMOUS 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 INT 是 对PL/SQL采取的操作的位标志。 当flags=1时,在执行完最顶层的PL/SQL后,会释放会话中目前运行的PL/SQL的会话缓存。清除任何包全局的当前值并关闭缓存的游标。在后续使用时,PL/SQL将重新实例化,并重新初始化包全局。 不支持其他位标志。 示例: CALL PKG_UTIL.MODIFY_PACKAGE_STATE(1); modify_package_state ---------------------- (1 row) 父主题: 基础接口
  • 表级字符集和字符序 设置表的默认字符集和默认字符序,创建表操作请参见CREATE TABLE。 CREATE TABLE table_name (column_list) [ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] [ [DEFAULT] COLLATE [ = ] default_collation ] 修改表的默认字符集和默认字符序,修改不会影响表中当前已经存在的列,修改表操作请参见ALTER TABLE。 ALTER TABLE table_name [ [DEFAULT] CHARACTER SET | CHARSET [ = ] default_charset ] [ [DEFAULT] COLLATE [ = ] default_collation ] 暂不支持修改表的默认字符集和默认字符序为指定的值,同时将表中的所有字符类型的字段的字符集和字符序设置为指定的值,并将字段里的数据转换为新字符集编码。语法如下: ALTER TABLE table_name CONVERT TO CHARACTER SET | CHARSET charset [ COLLATE collation ] 参数说明 table_name 表名称。 default_charset 指定表的默认字符集,单独指定时会将表的默认字符序设置为指定字符集的默认字符序。 default_collation 指定表的默认字符序,单独指定时会将表的默认字符集设置为指定字符序对应的字符集。 GaussDB 通过以下方式选择表的字符集和字符序: 如果同时指定了default_charset和default_collation,则使用字符集 default_charset 和字符序default_collation,且default_charset和default_collation需要对应,不对应会产生报错。 如果仅指定了default_charset,则使用字符集default_charset及其默认字符序。 如果仅指定了default_collation,则使用default_collation字符序和其对应的字符集。 如果既不指定default_charset也不指定default_collation,则使用该表所在的模式的默认字符集和默认字符序作为表的默认字符集和表的默认字符序。 default_charset仅支持指定为带有默认字符序的字符集,如果指定的字符集没有默认字符序则报错。 default_collation仅支持指定为MYSQL模式(即sql_compatibility = 'MYSQL')下的字符序,指定其他字符序报错。 如果表的默认字符序为binary ,则表中未指定字符序的文本类型会转换为对应的二进制类型,且字符序设置为binary。 暂不支持设置表的默认字符集和默认字符序与数据库的server_encoding不同。 暂不支持将表中字符类型字段的数据转化编码。 示例: 1 2 3 4 5 6 7 8 9 10 11 -- 仅设置字符集,字符序为字符集的默认字符序 gaussdb=# CREATE TABLE test(c1 text) CHARSET utf8; -- 仅设置字符序,字符集为字符序关联的字符集 gaussdb=# CREATE TABLE test(c1 text) COLLATE utf8_bin; -- 同时设置字符集与字符序,字符集和字符序需对应 gaussdb=# CREATE TABLE test(c1 text) CHARSET utf8 COLLATE utf8_bin; -- 修改表的默认字符集为utf8mb4,默认字符序为utf8mb4_bin gaussdb=# ALTER TABLE test CHARSET utf8mb4 COLLATE utf8mb4_bin; 父主题: 字符集与字符序
  • SUMMARY_STAT_ALL_INDEXES 显示集群内数据库各节点的每个索引的访问统计信息(在CN节点使用。对每个节点索引的访问统计信息汇总求和,其中timestamp类型字段不求和,仅取所有节点中该字段最新值),如表1所示。 表1 SUMMARY_STAT_ALL_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 last_updated timestamp with time zone 视图中该索引监控数据最后一次更新的时间。 父主题: Object
  • GS_DB_PRIVILEGE GS_DB_PRIVILEGE系统表记录ANY权限的授予情况,每条记录对应一条授权信息。 表1 GS_DB_PRIVILEGE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roleid oid 用户标识。 privilege_type text 用户拥有的ANY权限,取值参考表1。 admin_option boolean 是否具有privilege_type列记录的ANY权限的再授权权限。 t:表示具有。 f:表示不具有。 父主题: 用户和权限管理
  • javax.sql.DataSource javax.sql.DataSource是数据源接口。 表1 对javax.sql.DataSource接口的支持情况 方法名 返回值类型 支持JDBC4 getConneciton() Connection Yes getConnection(String username,String password) Connection Yes getLoginTimeout() int Yes getLogWriter() PrintWriter Yes setLoginTimeout(int seconds) void Yes setLogWriter(PrintWriter out) void Yes 父主题: JDBC接口参考
  • GLOBAL_STAT_XACT_SYS_TABLES 显示各节点Schema中系统表的事务状态信息(在CN节点使用,不同节点下相同表名的事务状态信息不进行汇总),如表1所示。 表1 GLOBAL_STAT_XACT_SYS_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表的OID。 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan bigint 该表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 该表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(即没有更新索引列的行数)。 父主题: Object
共100000条