posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          ORACLE的基本語法集錦

          Posted on 2007-09-10 23:16 semovy 閱讀(280) 評論(0)  編輯  收藏 所屬分類: Oracle數據庫方面
          -- 表
          create table test (names varchar2(12),
                             dates date,
                             num   int,
                             dou   double);
          -- 視圖
          create or replace view vi_test as
          select * from test;

          -- 同義詞
          create or replace synonym aa
          for dbusrcard001.aa;

          -- 存儲過程
          create or replace produce dd(v_id in employee.empoy_id%type)
          as
          begin
             
          end
          dd;

          -- 函數
          create or replace function ee(v_id in employee%rowtype) return varchar(15)
          is
          var_test varchar2(15);
          begin
            return var_test;
          exception when others then
             
          end

          -- 三種觸發器的定義
          create or replace trigger ff
          alter delete
          on test
          for each row
          declare
          begin
             delete from test;
             if sql%rowcount < 0 or sql%rowcount is null then
                rais_replaction_err(-20004,"錯誤")
             end if
          end


          create or replace trigger gg
          alter insert
          on test
          for each row
          declare
          begin
             if :old.names = :new.names then
                raise_replaction_err(-2003,"編碼重復");
             end if
          end


          create or replace trigger hh
          for update
          on test
          for each row
          declare
          begin
            if updating then
               if :old.names <> :new.names then
           reaise_replaction_err(-2002,"關鍵字不能修改")
               end if
            end if
          end 

          -- 定義游標
          declare
             cursor aa is
                select names,num from test;
          begin
             for bb in aa
             loop
                  if bb.names = "ORACLE" then
                  
                  end if
             end loop;
             
          end

          -- 速度優化,前一語句不后一語句的速度快幾十倍
          select names,dates 
          from test,b
          where test.names = b.names(+) and
                b.names is null and
                b.dates > date('2003-01-01','yyyy-mm-dd')

           
          select names,dates
          from test 
          where names not in ( select names 
                                 from b
                                where dates > to_date('2003-01-01','yyyy-mm-dd'))
                                 

          -- 查找重復記錄
          select names,num 
          from test 
          where rowid != (select max(rowid) 
                           from test b 
                          where b.names = test.names and
                                b.num = test.num)


          -- 查找表TEST中時間最新的前10條記錄
          select * from (select * from test order by dates desc) where rownum < 11

          -- 序列號的產生
          create sequence row_id
          minvalue 1
          maxvalue 9999999999999999999999
          start with 1
          increment by 1

          insert into test values(row_id.nextval,....) 
          主站蜘蛛池模板: 海晏县| 上栗县| 珠海市| 铜陵市| 二连浩特市| 四子王旗| 玛纳斯县| 宣威市| 红原县| 商丘市| 修文县| 西林县| 城固县| 平顺县| 渭源县| 班戈县| 三穗县| 临清市| 贵阳市| 怀远县| 周口市| 兴安盟| 渝中区| 佛坪县| 乐安县| 临洮县| 松江区| 同仁县| 缙云县| 扎囊县| 高尔夫| 百色市| 加查县| 军事| 闽侯县| 东莞市| 大邑县| 牟定县| 得荣县| 城口县| 邓州市|