SQL还能管理非数据的对象,稀奇吧呵呵,今天来看看用sql管理文件目录的方法吧
SQLHUB的3.0.0中的视图做了重大改进:
o 支持触发器
o 支持数据权限
o 允许在insert、0update和0delete语句中操作
o 支持索引
使用这些新特性我们能实现可管理的虚拟化视图,下面举个例子:
1. 首先执行以下sql,创建一个视图
--文件目录虚拟视图
create or replace view mydir as
begin
0select 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.