SQL還能管理非數(shù)據(jù)的對象,稀奇吧呵呵,今天來看看用sql管理文件目錄的方法吧
SQLHUB的3.0.0中的視圖做了重大改進:
o 支持觸發(fā)器
o 支持?jǐn)?shù)據(jù)權(quán)限
o 允許在insert、update和delete語句中操作
o 支持索引
使用這些新特性我們能實現(xiàn)可管理的虛擬化視圖,下面舉個例子:
1. 首先執(zhí)行以下sql,創(chuàng)建一個視圖
--文件目錄虛擬視圖
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. 我們?yōu)閙ydir視圖加一個觸發(fā)器,sql語句如下:
--文件目錄虛擬視圖觸發(fā)器
create or replace trigger mydir_trigger for mydir as
begin
--基礎(chǔ)目錄
v_dir := ’d:\\mydir\\’;
if type=’BEFORE_INSERT’ then
--創(chuàng)建目錄
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;
SQLHUB的3.0.0中的視圖做了重大改進:
o 支持觸發(fā)器
o 支持?jǐn)?shù)據(jù)權(quán)限
o 允許在insert、update和delete語句中操作
o 支持索引
使用這些新特性我們能實現(xiàn)可管理的虛擬化視圖,下面舉個例子:
1. 首先執(zhí)行以下sql,創(chuàng)建一個視圖
--文件目錄虛擬視圖
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. 我們?yōu)閙ydir視圖加一個觸發(fā)器,sql語句如下:
--文件目錄虛擬視圖觸發(fā)器
create or replace trigger mydir_trigger for mydir as
begin
--基礎(chǔ)目錄
v_dir := ’d:\\mydir\\’;
if type=’BEFORE_INSERT’ then
--創(chuàng)建目錄
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;