ASE如何直接访问文件和直接生成文件

时间:2022-03-09 13:34:28

1.配置允许访问文件系统

exec sp_configure 'enable file access', 1

2.创建代理表实现访问,前提是ASE进程对目录有访问或者创建新文件的权限

--创建代理表实现访问
create proxy_table TB_SYS_TMP external directory at '/tmp/test/'

3.应用

--查询
select * from TB_SYS_TMP

id,filename,size,filetype,access,uid,gid,atime,mtime,ctime,content
2054000000339330,'a.txt',20,'REG','-rw-r--r--','root','root',2014-06-17 13:55:24.0,2014-06-17 13:55:35.0,2014-06-17 13:55:35.0,0x746573742070726f7879206469726563746f720a
--创建文件
insert into TB_SYS_TMP(filename,content) values('b.txt','this is b.txt')
--创建新目录
insert into TB_SYS_TMP(filename,filetype) values('newdir','DIR') 

4.验证

[root@sybaseHost test]# ls -l
total 12
-rw-r--r-- 1 root root   20 Jun 17 13:55 a.txt
-rw-r----- 1 root root   13 Jun 17 14:05 b.txt
drwxr-x--- 2 root root 4096 Jun 17 14:06 newdir

5.通过;R实现递归

create proxy_table TB_SYS_TMP external directory at '/tmp/test/;R'
select * from TB_SYS_TMP
ASE如何直接访问文件和直接生成文件

6.指定代理表字段

create existing table errorlog
(
record varchar(512) null
)
external file at "/usr/sybase/ASE15_0/install/errorlog"
在这种情况下,将返回最长为 512 个字节的记录。由于代理表只包含一列,每列的实际长度将由换行符的位置来确定