<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JUST DO IT ~

    我只想當個程序員

    oracle dba_synonyms User_Synonyms 同義詞 使用和刪除 .

    dba_synonyms
    User_Synonyms

    萬一需要 查看系統的同義詞 . 可能自己建立的時候沒有加參數.
    錯誤的建立的系統級別的同義詞了.


     
    select * from dba_synonyms   e
    where e.table_name  like '%TB_O%' 

    drop public synonym TB_OBJECT_1090 ;



    drop index IDX_TB_OBJECT_1090   ;
    create index IDX_TB_OBJECT_1090  on TB_OBJECT_1090  (F2_1090 , f5_1090  , f16_1090  ) ;

    --

    CREATE DATABASE LINK  wind  CONNECT TO  wind  IDENTIFIED BY  wind USING  'wind';

    create database link wind
      connect 
    to wind identified by wind
      using 
    '(DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 123.123.123.0)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = itmp)
        )
      )
    ';

    create or replace  synonym  tb_object_1090  for   tb_object_1090@wind ;





    參考原文:




    ORACLE相關語法4--數據庫對象
    作者:蘇楓 2007-12-17 21:42:29
    標簽: oracle
     

    四、數據庫對象
      表、視圖、序列、過程、函數、程序包,甚至其它同義詞都可以創建同義詞。
     
      1、同義詞:私有同義詞、公有同義詞。
      私有同義詞只能被當前模式的用戶訪問。私有同義詞名稱不可與當前模式的對象名稱相同。要在自身的模式創建私有同義詞,
      用戶必須擁有Create Synonym系統權限。要在其它用戶模式創建私有同義詞,用戶必須擁有Create Any Synonym系統權限。
      公有同義詞可被所有的數據庫用戶訪問。要創建公有同義詞,用戶必須擁有Create Public Synonym系統權限。

      創建私有同義詞語法:
      Create [OR REPLACE] SYNONYM [schema.]synonym_name FOR [schema.]object_name;
      其中:OR REPLACE表示在同義詞存在的情況下替換該同義詞。
            synonym_name表示要創建的同義詞的名稱。
            object_name指定要為之創建同義詞的對象的名稱。
      示例1:create synonym s_emp for scott.emp;

      創建公有同義詞語法:
      Create PUBLIC SYNONYM synonym_name FOR [schema.]object_name;
      示例2:create public synonym emp_syn from scott.emp;

      可以查詢字典視圖User_Synonyms來查看用戶所創建的同義詞的詳細信息
     
      刪除同義詞語法:Drop Synonyms synonym_name; 刪除公有同義詞加上一個Public
      此命令只刪除同義詞,不會刪除對應的表。

      2、序列:是用來生成唯一、連續的整數的數據庫對象。序列通常用來自動生成主鍵或唯一鍵的值。
      創建序列語法如下:
      Create SEQUENCE sequence_name
        [START WITH integer]
        [INCREMENT BY integer]
        [MAXVALUE integer|NOMAXVALUE]
        [MINVALUE integer|NOMINVALUE]
        [CYCLE|NOCYCLE]
        [CACHE interger|NOCACHE];
      其中:START WITH是指定要生成的第一個序列號。對于升序序列,其默認值為序列的最小值。對于降序序列,其默認值為序列的最大值。
            INCREMENT BY是用于指定序列號之間的間隔。其默認值為1。如果integer為正值,則生成的序列將按升序排列,否則按降序排列。
            MAXVALUE指定序列可以生成的最大值。
            NOMAXVALUE這是默認選項,將升序序列的最大值設為10的27次冪,將降序序列的最大值設為-1。
            MINVALUE指定序列的最小值。MINVALUE必須小于或等于START WITH的值,并且必須小于MAXVALUE。
            NOMINVALUE這是默認選項,將升序序列的最小值設為1,將降序序列的最小值設為-10的26次冪。
            CYCLE指定序列在達到最大值或最小值后,將繼續從頭開始生成值。
            NOCYCLE這是默認選項。指定序列在達到最大值或最小值后,將不能再繼續生成值。
            CACHE使用CACHE選項可以預先分配一組序列號,并將其保留在內存中,這樣可以更快的訪問序列號。
            NOCACHE此項則不會為加快速度而預先分配序列號。如果在創建序列時忽略了CACHE和NOCACHE選項,Oracle將默認緩存20個序列號。
      示例3:Create SEQUENCE toys_seq
               START WITH 10
               INCREMENT BY 2
               MAXVALUE 2000
               MINVALUE 10
               NOCYCLE
               CACHE 30;

      訪問序列:可以通過CURRVAL和NEXTVAL偽列來訪問該序列的值。
      示例4:演示從序列toys_seq中選擇值插入toys表中的toyid列。執行成功將會在該表的toyid列插入值"P10"和"P12"。
             INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'TWENTY',25);
             INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTVAL,'MAGIC PENCIL',75);
      示例5:演示如何查看序列當前值
             Select toys_seq.CURRVAL from dual;

      更改序列:ALTER SEQUENCE命令用于設置或刪除MINVALUE或MAXVALUE、修改增量值、修改緩存中的序列號的數目。
      修改序列語法如下:注意,不能修改序列的START WITH參數。在修改序列時,應注意升序序列的最小值應小于最大值。
      ALTER SEQUENCE [schema.]sequence_name
        [INCREMENT BY integer]
        [MAXVALUE integer|NOMAXVALUE]
        [MINVALUE integer|NOMINVALUE]
        [CYCLE|NOCYCLE]
        [CACHE interger|NOCACHE];
      示例6:演示如何設置一個新的MAXVALUE,并為toys_seq序列打開了CYCLE。
            ALTER SEQUENCE toys_seq
              MAXVALUE 5000
              CYCLE;

      可以查詢字典視圖User_Sequences來查看用戶所創建的序列的詳細信息

      刪除序列語法:Drop SEQUENCE toys_seq;

      3、視圖
      視圖是存儲的查詢定義。
      創建視圖的語法如下:
      Create [OR REPLACE] [FORCE | NOFORCE] VIEW view_name[(alias,alias,...)] AS
      select_statement [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY];
      其中:OR REPLACE表示在該視圖存在的話,將重新創建該視圖。
            FORCE使用此關鍵字,則無論基表是否存在,都將創建視圖。
            NOFORCE這是默認值。如果使用此關鍵字,則僅當基表存在時才創建視圖。
            view_name表示要創建視圖的名稱。
            alias指定在視圖里面列的名字,名字數目必須與視圖所選擇的表達式的數目相匹配。
            select_statement表示Select語句。
            WITH CHECK OPTION此選項指定只能插入或更新視圖可以訪問的行。術語constraint表示為CHECK OPTION約束指定的名稱。
            WITH READ ONLY此選項確保不能在此視圖上執行任何修改操作。
      示例7:演示創建一個名為ven_view的視圖,該視圖與vendor_master表具有相同的結構。
            Create VIEW ven_view AS select * from vendor_master;

      視圖中的ORDER BY子句:以便在查詢視圖時即使不使用Order By子句,結果集也會按指定的順序排列行。
      示例8:Create OR REPLACE VIEW ven_view(編號,日期) AS select orderno,odate from vendor_master order by venname;
     
      創建帶有錯誤的視圖:使用FORCE選項
      在以下情況下,Oracle也會創建視圖:
      視力定義的查詢引用了一個不存在的表;視圖定義的查詢引用了現有表中無效的列;視圖的所有者沒有所需的權限。
      示例9:下面創建一個基于venmast的視圖。但數據庫中并不存在名為"venmast"的表。
      Create FORCE VIEW ven AS select * from venmast;
      如果稍后創建名為venmast的表,可以使用ALTER VIEW ven COMPILE;
     
      聯接視圖:
      示例:演示如何創建聯接視圖
      Create OR REPLACE VIEW ven_ord_view AS select vm.vencode,venname,orderno,odate,ostatus
      from vendor_master vm,order_master om where vm.vencode=om.vencode;

      鍵保留表:在聯接視圖中,如果視圖包含了一個表的主鍵,并且也是這個視圖的主鍵,則這個鍵被保留,則這個表被稱為鍵保留表。
      ven_ord_view視圖以vendor_master和order_master這兩個表為基表。order_master表被視為鍵保留表,因為orderno既是order_master表
      的主鍵,也是視圖的主鍵。而vendor_master表不被視為鍵保留表,因為vendor_master表的主鍵vencode是聯接字段,不是視圖的主鍵。
      示例10:此示例成功修改了記錄,因為odate列屬于鍵保留表order_master。對于非鍵保留表vendor_master的venname列的更新則是不允許的。
      update wen_ord_view odate=odate+1 where vencode='V003';    注意:運行此示例時,必須確保基表的主鍵已正確創建。

      可以查詢字典視圖User_Updateble_Columns來查看聯接視圖中可更新的列。
      可以查詢字典視圖User_Views來查看用戶所創建的視圖信息。

      視圖中的函數:視圖可以使用單行函數(由數字、字符、日期組成)、分組函數和表達式。
      示例11:此示例用UPPER函數創建視圖,注意使用函數或表達式時,應賦予列一個別名。
      Create VIEW vendor_master_view AS select vencode,UPPER(venname) vendor_name from vendor_master;

      刪除視圖語法:Drop VIEW view_name ;

      4、索引:
         查詢User_indexes可以獲取有關用戶已創建的索引的詳細信息。
         查詢User_ind_partitions可以獲取有關用戶已創建的分區索引的詳細信息。
         查詢User_ind_columns可以獲取有關列(用戶的索引是基于這些列創建的)的詳細信息。
         唯一索引、組合索引、反向鍵索引、位圖索引和基于函數的索引。
         索引在邏輯上物理上都獨立于關聯表中的數據,在任何時候都可以創建或刪除索引,而不會影響基表或其它索引。
         創建普通索引的語法:
         Create INDEX index_name ON table_name(column_list) [TABLESPACE tablespace_name];
         其中:index_name指所創建索引的名稱。
               table_name表示為之創建索引的表名。
               column_list是在其上創建索引的列名列表,可以基于多列創建索引。
               tablespace_name為索引指定表空間。
         示例12:演示如何在itemfile表的itemcode列上創建索引
         create index item_index on itemfile(itemcode);
      
         ALTER INDEX語句的REBUILD選項可以用來重建現有的索引。該選項提供的性能要優于使用DROP INDEX和CREATE INDEX語句重新創建索引。
         示例13:重建索引
         ALTER INDEX item_index REBUILD;

         刪除索引語法:Drop INDEX item_index;

         (1)唯一索引:此索引可以確保在定義索引的列中,表的任意兩行的值都不相同。Oracle自動為表的主鍵列創建唯一索引。
            可以使用Create UNIQUE INDEX命令明確地創建唯一索引。
         示例14:在itemfile表的itemcode列上創建了一個名為item_index的唯一索引。
         Create UNIQUE INDEX item_index ON itemfile(itemcode);

         (2)組合索引:組合索引是在表中的多個列上創建的索引。組合索引中列的順序是任意的,不必是表中相鄰的列。
            創建組合索引時,應注意定義中使用的列的順序。通常,最頻繁訪問的列應放置在列表的最前面。
         示例15:在itemfile表上創建了一個名為comp_index的組合索引,當查詢該表的的WHERE子句同時包含這兩個列或只包含
                 p_category列時,以下示例語句創建的索引將用于檢索數據,但如果單獨使用itemrate列,則索引不能用于檢索數據。
         Create INDEX comp_index ON itemfile(p_category,itemrate);

         (3)反向鍵索引:通常建立在一些值連續增長的列上,例如列中的值是是由序列產生的情況。
         示例16:在itemfile表上創建了一個名為rev_index的反向鍵索引。注意使用REVERSE關鍵字。
         Create INDEX rev_index ON itemfile(itemcode) REVERSE;
         示例17:使用關鍵字NOREVERSE可以將反向鍵索引重建為標準索引。
         ALTER INDEX rev_index REBUILD NOREVERSE;
         注意:不能將標準索引重建為反向鍵索引。

         (4)位圖索引:如果某個列的值重復超過一百次,則可以考慮在該列上創建位圖索引。
         示例18:itemcode是order_detail表中的低基數列,因為貨物編碼在大多數訂單中都是重復的,因此適合在該列上創建位圖索引。
         Create BITMAP INDEX bit_ind1 ON order_detail(itemcode);
         位圖索引不應當用在頻繁發生的INSERT,UPDATE,DELETE操作的表上。位圖索引最適合于數據倉庫和決策支持系統。

         (5)索引組織表:索引組織表與在一個或多個列上建立索引的普通表相似,但它無需為表和索引維護兩個單獨的存儲空間,
                        數據庫系統僅維護一個索引,該索引包含相應的已編碼鍵值和與其關聯的列值。
         示例19:使用ORGANIZATION INDEX子句來創建索引組織表。
         Create table ind_org_tab
         (
            vencode NUMBER(4) primary key,          注意:primary key是創建索引組織表所必需的。不允許使用分區。
            venname VARCHAR2(20)
         )
         organization index;
         索引組織表適合于通過主鍵來訪問數據。
       
         (6)基于函數的索引:如果在WHERE子句的算術表達式或函數中已經包含了某個列,則不會使用該列上的索引。不能在表達式包含任何
            聚合函數,LOB列、REF列或包含LOB或REF的對象類型上創建基于函數的索引。
         示例20:venname是vendor_master表的一個列,用于存儲供應商的姓名,假定所有供應商的姓名都以混合大小寫的形式存儲
                 (如:John Smith、Dave Jones、Tony Greig等等),同時假定我們經常需要根據供應商的姓名來查詢表的數據。由于
                 姓名是以混合大小寫的形式存儲的,因此可能很難給出姓名的正確大小寫形式。可以創建如下索引:
         Create INDEX vn_ind ON vendor_master(UPPER(venname));
         示例21:演示如何使用前面創建的基于函數的索引檢索數據。
         select * from vendor_master where UPPER(venname)='SMALL';
       
         要創建基于函數或表達式的索引,必須具有QUERY REWRITE系統權限。

         (7)索引中的分區:與對表進行分區類似,Oracle也允許對索引分區。牽引分區可以存儲在不同的表空間中。
            局部分區索引:Oracle為表的每個分區建立一個獨立的索引。
            示例22:先創建分區表
            Create table order_mast
            (
               orderno number(4),
        venname varchar2(20)
            )
            partition by range(orderno)
            (
        partition oe1 values less than(1000),
               partition oe2 values less than(2000),
        partition oe3 values less than(maxvalue)
     );
            接著創建局部索引:
            create INDEX myind ON order_mast(orderno) LOCAL;
          
            全局分區索引:是指在分區表或非分區表上創建的索引。
            示例23:在上面創建的分區表上創建全局索引
            create INDEX glb_ind ON order_mast(orderno) GLOBAL
     partition by range(orderno)
     (
       partition ip1 values less than(1500),
         partition ip2 values less than(maxvalue)
     );
            在有3個分區的表上創建2個分區的索引。注意:不能在散列分區或子分區建立全局索引。

            全局非分區索引:全局分區索引是在分區表上創建的全局索引,它類似于非分區表上的索引,索引的結構不會被分割。

    本文僅為提供更多信息,不代表新浪BLOG同意其觀點或描述。如需轉載請注明出處。




    posted on 2008-06-21 17:41 小高 閱讀(6053) 評論(1)  編輯  收藏

    評論

    # re: oracle dba_synonyms User_Synonyms 同義詞 使用和刪除 . 2008-06-21 17:54 小高

    http://download.oracle.com/otn/nt/oracle10g/10201/10201_gateways_win32.zip


    注意oracle 10g 不附帶同名透明網管 . 無法連接 mssql 庫 .
      回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統計

    常用鏈接

    留言簿(3)

    隨筆分類(352)

    收藏夾(19)

    關注的blog

    手冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: h视频免费高清在线观看| 有色视频在线观看免费高清在线直播| 免费看成人AA片无码视频羞羞网| 亚洲熟女www一区二区三区| 日韩精品电影一区亚洲| 久久亚洲免费视频| 亚洲日韩看片无码电影| 亚洲人成色77777| 97视频热人人精品免费| 无码人妻一区二区三区免费视频 | 亚洲精品老司机在线观看| 亚洲永久在线观看| 国产精品小视频免费无限app| 一级一级一片免费高清| 亚洲另类自拍丝袜第五页 | av无码久久久久不卡免费网站| 亚洲乱码日产精品一二三| 亚洲成在人线av| 国产又粗又猛又爽又黄的免费视频| 国产成人无码区免费网站| 亚洲国产成人综合精品| 亚洲国产精品免费视频| 亚洲伊人成无码综合网| 毛片基地免费视频a| 免费在线观看一级片| 黄色免费网站在线看| 精品久久久久久亚洲精品| 亚洲综合伊人久久综合| 四虎成人免费观看在线网址| 久久免费国产视频| AAAAA级少妇高潮大片免费看| 亚洲精品9999久久久久无码 | 99999久久久久久亚洲| 亚洲成a人片在线观看无码| 免费人成视频在线观看视频 | 亚洲国产精品不卡在线电影| 亚洲A∨精品一区二区三区| 成年女人色毛片免费看| 国产一卡二卡四卡免费| 亚欧日韩毛片在线看免费网站| 中文字幕无码免费久久9一区9 |