• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            DB2常用SQL的寫法(三)

            Posted on 2010-03-18 22:35 Prayer 閱讀(495) 評論(0)  編輯 收藏 引用 所屬分類: DB2
            --create type (結構化的)用法
               create type dept as
                  (dept name     varchar(20),
                     max_emps int)
                     ref using int
                  mode db2sql
               create type emp as
                 (name      varchar(32),
                 serialnum int,
                 dept      ref(dept),
                 salary    decimal(10,2))
                 mode db2sql
             
               create type mgr under emp as
                 (bonus     decimal(10,2))
                 mode db2sql
             
               create type address_t as
                 (street     varchar(30),
                 number     char(15),
                 city       varchar(30),
                 state      varchar(10))
                 not final
                 mode db2sql
                   method samezip (addr address_t)
                   returns integer
                   language sql
                   deterministic
                   contains sql
                   no external action,
                   method distance (address_t)
                   returns float
                   language c
                   deterministic
                   parameter style sql
                   no sql
                   no external action
             
               create type germany_addr_t under address_t as
                 (family_name varchar(30))
                 not final
                 mode db2sql
             
               create type us_addr_t under address_t as
                 (zip varchar(10))
                 not final
                 mode db2sql
               create type project as
                 (proj_name  varchar(20),
                  proj_id    integer,
                  proj_mgr   mgr,
                  proj_lead  emp,
                  location   addr_t,
                  avail_date date)
                  mode db2sql
             
            -- create type mapping的用法
            create type mapping my_oracle_date
              from local type sysibm.date
              to server type oracle
              remote type date
             
            create type mapping my_oracle_dec
              from local type sysibm.decimal(10,2)
              to server oracle1
              remote type number([10..38],2)
             
            create type mapping my_oracle_char
              from local type sysibm.varchar()
              to server oracle1
              remote type char()
             
            create type mapping my_oracle_dec
              to local type sysibm.decimal(10,2)
              from server oracle2
              remote type number(10,2)
             
            -- create user mapping的用法
            create user mapping for rspalten
              server server390
              options
              (remote_authid 'system',
              remote_password 'manager')
             
            create user mapping for marcr
              server oracle1
              options
              (remote_password 'nzxczy')
             
            -- case的用法 
            case v_workdept
              when'a00'
                then update department
                set deptname = 'data access 1';
              when 'b01'
                then update department
                set deptname = 'data access 2';
              else update department
                set deptname = 'data access 3';
            end case
             
            case
              when v_workdept = 'a00'
                then update department
                set deptname = 'data access 1';
              when v_workdept = 'b01'
                then update department
                set deptname = 'data access 2';
              else update department
                set deptname = 'data access 3';
            end case
             
            -- create trigger的用法
            create trigger new_hired
              after insert on employee
              for each row
              update company_stats set nbemp = nbemp + 1
             
            create trigger former_emp
              after delete on employee
              for each row
              update company_stats set nbemp = nbemp - 1
             
            create trigger reorder
              after update of on_hand, max_stocked on parts
              referencing new as n
              for each row
              when (n.on_hand < 0.10 * n.max_stocked)
              begin atomic
              values(issue_ship_request(n.max_stocked - n.on_hand, n.partno));
              end
             
            create trigger raise_limit
              after update of salary on employee
              referencing new as n old as o
              for each row
              when (n.salary > 1.1 * o.salary)
                     signal sqlstate '75000' set message_text='salary increase>10%'
             
            create trigger stock_status
              no cascade before update of quote on currentquote
              referencing new as newquote old as oldquote
              for each row
              begin atomic
                 set newquote.status =
                   case
                      when newquote.quote >
                            (select max(quote) from quotehistory
                            where symbol = newquote.symbol
                            and year(quote_timestamp) = year(current date) )
                         then 'high'
                      when newquote.quote < (select min(quote) from quotehistory
                            where symbol = newquote.symbol
                            and year(quote_timestamp) = year(current date) )
                         then 'low'
                      when newquote.quote > oldquote.quote
                         then 'rising'
                      when newquote.quote < oldquote.quote
                         then 'dropping'
                      when newquote.quote = oldquote.quote
                         then 'steady'
                   end;
              end
             
            create trigger record_history
              after update of quote on currentquote
              referencing new as newquote
              for each row
              begin atomic
                insert into quotehistory
                  values (newquote.symbol, newquote.quote, current timestamp);
              end
            -- create tablespace 的用法
            create tablespace payroll
              managed by database
              using (device'/dev/rhdisk6' 10000,
                device '/dev/rhdisk7' 10000,
                device '/dev/rhdisk8' 10000)
              overhead 12.67
              transferrate 0.18
             
            create tablespace accounting
              managed by system
              using ('d:\acc_tbsp', 'e:\acc_tbsp', 'f:\acc_tbsp')
              extentsize 64
              prefetchsize 32
            create tablespace plans
              managed by database
              using (device '/dev/rhdisk0' 10000, device '/dev/rn1hd01' 40000)
              on dbpartitionnum (1)
              using (device '/dev/rhdisk0' 10000, device '/dev/rn3hd03' 40000)
              on dbpartitionnum (3)
              using (device '/dev/rhdisk0' 10000, device '/dev/rn5hd05' 40000)
              on dbpartitionnum (5)
             
            -- 帶case查詢條件語句
            select (case b.organtypecode
                     when 'D' then
                      b.parent
                     when 'S' then
                      b.parent
                     else
                      b.id
                   end),
                   b.name
              from A_ORGAN b
             where b.id = 999
            国内精品久久久久影院网站| 久久成人国产精品免费软件| 2021少妇久久久久久久久久| 97久久天天综合色天天综合色hd| 久久精品国产精品青草app| 久久久久免费视频| 久久精品国产亚洲AV蜜臀色欲| 久久香蕉超碰97国产精品| 青青青青久久精品国产h| 久久久一本精品99久久精品88| 69久久精品无码一区二区| 日韩一区二区三区视频久久| 日韩精品久久无码人妻中文字幕| 久久久久一区二区三区| 精品久久久久久中文字幕大豆网| 久久青青草原精品影院| 精品熟女少妇AV免费久久| 久久久久久av无码免费看大片| 久久久久人妻一区二区三区vr| 久久99国产一区二区三区| 国内精品九九久久久精品| 热99RE久久精品这里都是精品免费 | 亚洲国产精品无码久久98| 亚洲国产精品久久久久婷婷老年| 久久中文字幕人妻丝袜| 欧美一级久久久久久久大片| 办公室久久精品| 色综合久久久久| 97久久精品午夜一区二区| 亚洲国产另类久久久精品黑人| 一本久久a久久精品综合香蕉| 国产精品美女久久久网AV| 国产精品视频久久| 久久综合九色综合精品| 久久久精品午夜免费不卡| 97久久精品无码一区二区| 久久99国产综合精品免费| 国产精品免费看久久久| 99久久这里只有精品| 久久最新精品国产| 国产精自产拍久久久久久蜜|