GBase 8c V3.0.0数据类型——通用文件访问函数

通用文件访问函数提供了对数据库服务器上的文件的本地访问接口。只有GBase 8c目录和log_directory目录里面的文件可以访问。使用相对路径访问GBase 8c目录里面的文件,以及匹配log_directory配置而设置的路径访问日志文件。只有数据库初始化用户才能使用这些函数。

  1. pg_ls_dir(dirname text)

描述:列出目录中的文件。

返回值类型:setof text

备注:pg_ls_dir返回指定目录里面的除了特殊项“.”和“..”之外所有名称。

示例:

gbase=# SELECT pg_ls_dir('./');

      pg_ls_dir

----------------------

 global

 pg_xlog

 pg_clog

 pg_csnlog

 pg_notify

 pg_serial

 pg_snapshots

 pg_twophase

 pg_multixact

 base

 pg_replslot

 pg_tblspc

 pg_stat_tmp

 pg_llog

 pg_errorinfo

 undo

 pg_logical

 pg_location

 PG_VERSION

 pg_ctl.lock

 postgresql.conf.lock

 postmaster.pid.lock

 mot.conf

 gs_gazelle.conf

 pg_hba.conf

 pg_ident.conf

 postgresql.conf.bak

 server.crt

 server.key

 cacert.pem

 server.key.cipher

 server.key.rand

 pg_hba.conf.lock

 pg_hba.conf.bak

 gaussdb.state

 postmaster.opts

 gswlm_userinfo.cfg

 postgresql.conf

 postmaster.pid

(39 rows)

  1. pg_read_file(filename text, offset bigint, length bigint)

描述:返回一个文本文件的内容。

返回值类型:text

备注:pg_read_file返回一个文本文件的一部分,从offset开始,最多返回length字节(如果先达到文件结尾,则小于这个数值)。如果offset是负数,则它是相对于文件结尾回退的长度。如果省略了offset和length,则返回整个文件。

示例:

 gbase=# SELECT pg_read_file('postmaster.pid',0,100);

               pg_read_file

-------------------------------------------

 7961                                     +

 /home/gbase/project/install/data/dn/dn1_1+

 1651723153                               +

 20008                                    +

 /home/gbase/gbase8c/tmp                  +

 [local_ip]                               +

  2

(1 row)

  1. pg_read_binary_file(filename text [, offset bigint, length bigint,missing_ok boolean])

描述:返回一个二进制文件的内容。

返回值类型:bytea

备注:pg_read_binary_file的功能与pg_read_file类似,除了结果的返回值为bytea类型不一致,相应地不会执行编码检查。与convert_from函数结合,这个函数可以用来读取用指定编码的一个文件。

SELECT convert_from(pg_read_binary_file('filename'), 'UTF8');

  1. pg_stat_file(filename text)

描述:返回一个文本文件的状态信息。

返回值类型:record

备注:pg_stat_file返回一条记录,其中包含:文件大小、最后访问时间戳、最后更改时间戳、最后文件状态修改时间戳以及标识传入参数是否为目录的Boolean值。典型的用法:

SELECT * FROM pg_stat_file('filename');

SELECT (pg_stat_file('filename')).modification;

示例:

 gbase=# SELECT convert_from(pg_read_binary_file('postmaster.pid'), 'UTF8');

               convert_from

-------------------------------------------

 7961                                     +

 /home/gbase/project/install/data/dn/dn1_1+

 1651723153                               +

 20008                                    +

 /home/gbase/gbase8c/tmp                  +

 [local_ip]                                +

  20008001         1                      +

(1 row)

gbase=# SELECT * FROM pg_stat_file('postmaster.pid');

size |         access         |      modification      |

change         | creation | isdir

------+------------------------+------------------------+---------

---------------+----------+-------

  118 | 2022-05-18 11:59:29+08 | 2022-05-05 11:59:13+08 | 2022-05-

05 11:59:13+08 |          | f

(1 row)

 gbase=# SELECT (pg_stat_file('postmaster.pid')).modification;

      modification

------------------------

 2022-05-05 11:59:13+08

(1 row)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值