用sql管理文件目录(疯狂的视图)

 
用sql管理文件目录(疯狂的视图)
          SQLHUB的 3.0.0中的视图做了重大改进:
o        支持触发器
o        支持数据权限
o        允许在 insert、update和delete语句中操作
o        支持索引
使用这些新特性我们能实现可管理的虚拟化视图,下面举个例子:
1.       首先执行以下 sql,创建一个视图
-- 文件目录虚拟视图
create or replace view mydir as
begin
 select name from sys.file(
'd://mydir' ) where type= 'FOLDER' ;
end;
查询上面的视图会返回d:/mydir目录下的所有子目录
Select * from mydir
+------+
| NAME |
+------+
| F1   |
| F2   |
+------+
2.         我们为mydir视图加一个触发器,sql语句如下:
-- 文件目录虚拟视图触发器
create or replace trigger mydir_trigger for mydir as
begin
 
-- 基础目录
 v_dir :=
'd://mydir//' ;
 if type=
'BEFORE_INSERT' then
   
-- 创建目录
    oscmd(
'cmd /c md ' + v_dir + new.name);
 else if type =
'BEFORE_DELETE' then
   
-- 删除目录
    oscmd(
'cmd /c rd ' + v_dir + new.name);
 else if type =
'BEFORE_UPDATE' then
   
-- 重命名目录
    oscmd(
'cmd /c rename ' + v_dir + old.name + ' ' + new.name);
 end if;
end;
上面的触发器截获了insert、update和delete操作,并做了相应处理。
3.         下面我们对视图执行dml操作,看效果:
insert into mydir (name) values ('test');
update mydir set name=name+'123'
delete from mydir
上面只是一个小例子,但意味着我们能用sql来管理非数据的对象。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值