用sql來管理非數(shù)據(jù)的對象

字號:

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;