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

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

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

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

    #

    1)JSON簡介
    2)JSON/LIST轉換
    3)JSON/MAP轉換
    4)JSON/動態Bean轉換
    5)JSON/靜態Bean轉換
    6)JSON/XML輸出

    1.JSON簡介
    JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,基于JavaScript,但是不僅僅限于此。
    詳情可以參考www.json.org
    例如一段XML
    <?xml version="1.0" encoding="utf-8"?>
     <shop>
      <name>飯店</name>
        <city>北京</city>
     </shop>
    用JSON表示如下:
    {
      "name":"飯店",
      "city":"北京"
    }
    XML的解析得考慮子節點父節點關系,而JSON的解析難度相當低,很多控件,尤其是ajax相關的數據交換很多都用json.

    2)JSON/LIST轉換
    本教程解析采用的json-lib,官方網站為http://json-lib.sourceforge.net/,本教程參考官方教程
    環境需要配置的jar如下
    commons-beanutils和ezmorph控制反射
    commons-collections是apachecommons的子項目,擴展了java集合類
    commons-lang擴展了java.lang包
    commons-logging日志類
    xom是xml解析類,可以參考www.xom.nu
    junit單元測試用的jar
    json-lib核心jar
    項目文件夾中擁有貨物參數(Shop)和貨物參數列表(ShopList)兩個實體
    Shop包含name和property兩個字段,ShopList包含Shop的列表
    對應的json是
    String s = "[{name:'重量',property:'p1'},{name:'尺寸',property:'p2'},{name:'顯卡類型',property:'p3'},{name:'硬盤容量',property:'p4'},{name:'處理器',property:'p5'},{name:'內存',property:'p6'},{name:'型號',property:'p7'},{name:'貨號',property:'p8'},{name:'品牌',property:'p9'}]";
    把這樣的數據結構作為用戶定義個人信息存入數據庫可以達到個性化參數的作用,
    比如shopex的數據庫中很多表就是用的json數據類型。因為用戶自己添加的參數的長度是不固定的
    比如上述例子就擁有9個用戶自定義的參數
    當用戶需要填寫這些參數的時候,需要轉化為list,然后在struts2的view去顯示
    完成的代碼可以參考附件的ArrayUtil文件
    核心代碼僅僅就一行JSONArray jsonArray = JSONArray.fromObject(s);
    得到這個jsonArray后要轉化為ArrayList,需要用循環遍歷,如下
    for (int i = 0; i < jsonArray.size(); i++) {
       Object o = jsonArray.get(i);
       JSONObject jsonObject = JSONObject.fromObject(o);
       Shop Person = (Shop) JSONObject.toBean(jsonObject, Shop.class);
       list.add(Person);
    }
    然后得到的list就是普通的ArrayList了

    3)JSON/MAP轉換
    當我們初始化完一個map,放入json可以直接放入
    Map<String, String> map = new HashMap<String, String>();
    map.put("name", "重量");
    map.put("property", "p1");
    JSONObject jsonObject = JSONObject.fromObject(map);
    核心代碼為
    JSONObject jsonObject = JSONObject.fromObject(map);
    JsonLib會自動映射
    完成例子見附件MapUtil.java


    4)JSON/動態Bean轉換
    所謂動態bean即是java運行的時候根據情況創建的,而不是程序員已經好了的Bean
    JsonLib會自動根據Json格式數據創建字段,然后創建一個包含這些字段的Object
    本例子中采用JUNIT做單元測試驗證,見DynamicBean.java
    String s = "{name:'重量',property:'p1'}";
    JSONObject jsonObject = JSONObject.fromObject(s);
    Object bean = JSONObject.toBean(jsonObject);
    assertEquals(jsonObject.get("name"), PropertyUtils.getProperty(bean,"name"));
    assertEquals(jsonObject.get("property"), PropertyUtils.getProperty(bean,"property"));


    5)JSON/靜態Bean轉換(StaticBean.java)
    JSONLIB在轉換的時候會自動查找關系,比如子類和父類
    例如JSON數據源
    String s = "{'shopList':[{name:'重量',property:'p1'},{name:'尺寸',property:'p2'},{name:'顯卡類型',property:'p3'},{name:'硬盤容量',property:'p4'},{name:'處理器',property:'p5'},{name:'內存',property:'p6'},{name:'型號',property:'p7'},{name:'貨號',property:'p8'},{name:'品牌',property:'p9'}]}";
    存入Map
    map.put("shopList", Shop.class);
    ShopList shopList = (ShopList) JSONObject.toBean(JSONObject.fromObject(s), ShopList.class, map);
    JSONObject.toBean()方法的三個參數分別表示數據源對應的JSON對象,轉化后的對象ShopList和數據源map
    然后這樣也可以取得ShopList
    這種方法和動態轉換的區別在于,動態轉換僅僅只是轉為Object
    而靜態轉換是轉換為已經定義過的實體類,會自動映射(這點類似Ibatis)

    6)JSON/XML輸出
    如果自己用String的方法轉化為XML輸出要寫很多代碼,然后條用JSONLIB,核心代碼僅僅一步
    String xmlObject = xmlSerializer.write(object);
    比如
    String s = "{name:'重量',property:'p1'}";
    XMLSerializer xmlSerializer = new XMLSerializer();
    JSONObject object = JSONObject.fromObject(s);
    String xmlObject = xmlSerializer.write(object);
    System.out.println(xmlObject);

    輸出結果為
    <?xml version="1.0" encoding="UTF-8"?>
    <o>
      <name type="string">重量</name>
      <property type="string">p1</property>
    </o>

    posted @ 2010-07-11 09:24 雪山飛鵠 閱讀(2902) | 評論 (2)編輯 收藏

    xml文件結構:books.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
        
    <book id="1">
            
    <name>深入淺出extjs</name>
            
    <author>張三</author>
            
    <price>88</price>
        
    </book>
        
    <book id="2">
            
    <name>鋒利的jQuery</name>
            
    <author>李四</author>
            
    <price>99</price>
        
    </book>
        
    <book id="3">
            
    <name>深入淺出flex</name>
            
    <author>王五</author>
            
    <price>108</price>
        
    </book>
        
    <book id="4">
            
    <name>java編程思想</name>
            
    <author>錢七</author>
            
    <price>128</price>
        
    </book>
    </root>
    頁面代碼:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>jquery解析xml</title>
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript">
        $(
    function(){
            $.post('books.xml',
    function(data){
                
    //查找所有的book節點
                var s="";
                $(data).find('book').each(
    function(i){
                    
    var id=$(this).attr('id');
                    
    var name=$(this).children('name').text();
                    
    var author=$(this).children('author').text();
                    
    var price=$(this).children('price').text();
                    s
    +=id+"&nbsp;&nbsp;&nbsp;&nbsp;"+name+"&nbsp;&nbsp;&nbsp;&nbsp;"+author+"&nbsp;&nbsp;&nbsp;&nbsp;"+price+"<br>";
                }
    );
                $('#mydiv').html(s);
            }
    );
        }
    );
    </script>
    </head>
    <body>
        
    <div id='mydiv'></div>
    </body>
    </html>
    效果圖:
     
    完整示例下載
    posted @ 2010-07-10 12:28 雪山飛鵠 閱讀(11873) | 評論 (6)編輯 收藏

            Flex 4 For Eclipse可以很方便的開發Flex應用,而且與Eclipse整合的好處是,Java開發人員可以很容易的使用它并調試,但這幾天試用時間過期了,不能用了,著實郁悶,暫時找到以下方法可以很方便的破解注冊提醒,只需要兩步:
            1.下載附件中的包,生成Adboe Flex 4 For Eclipse注冊碼
            2.打開系統的hosts文件,加入127.0.0.1 activate.adobe.com(以免Eclipse重新啟動的時候去官方檢驗注冊碼)
            好了,注冊提醒框沒有了,你可以正常進行Flex 4開發了!
            破解文件下載flashbuiler4keygen.rar
    posted @ 2010-07-08 21:33 雪山飛鵠 閱讀(3654) | 評論 (1)編輯 收藏

         摘要: 頁面代碼: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page contentType="text/html;&nb...  閱讀全文
    posted @ 2010-07-01 18:07 雪山飛鵠 閱讀(2385) | 評論 (0)編輯 收藏

         摘要: 環境需求:                 iText-2.1.7.jar              &n...  閱讀全文
    posted @ 2010-07-01 11:06 雪山飛鵠 閱讀(4014) | 評論 (2)編輯 收藏

    刪除用戶

    drop user user_name cascade;

    建立表空間

    CREATE TABLESPACE data01
    DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
    UNIFORM. SIZE 128k; #指定區尺寸為128k,如不指定,區尺寸默認為64k

    刪除表空間

    DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

    一、建立表空間

    CREATE TABLESPACE data01
    DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
    UNIFORM. SIZE 128k; #指定區尺寸為128k,如不指定,區尺寸默認為64k

    二、建立UNDO表空間

    CREATE UNDO TABLESPACE UNDOTBS02
    DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

    #注意:在OPEN狀態下某些時刻只能用一個UNDO表空間,如果要用新建的表空間,必須切換到

    該表空間:

    ALTER SYSTEM SET undo_tablespace=UNDOTBS02;

    三、建立臨時表空間

    CREATE TEMPORARY TABLESPACE temp_data
    TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

    四、改變表空間狀態

    1.使表空間脫機

    ALTER TABLESPACE game OFFLINE;

    如果是意外刪除了數據文件,則必須帶有RECOVER選項

    ALTER TABLESPACE game OFFLINE FOR RECOVER;

    2.使表空間聯機

    ALTER TABLESPACE game ONLINE;


    3.使數據文件脫機

    ALTER DATABASE DATAFILE 3 OFFLINE;

    4.使數據文件聯機

    ALTER DATABASE DATAFILE 3 ONLINE;

    5.使表空間只讀

    ALTER TABLESPACE game READ ONLY;

    6.使表空間可讀寫

    ALTER TABLESPACE game READ WRITE;

    五、刪除表空間

    DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

    六、擴展表空間

    首先查看表空間的名字和所屬文件

    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;

    1.增加數據文件
    ALTER TABLESPACE game
    ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;

    2.手動增加數據文件尺寸
    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
    RESIZE 4000M;

    3.設定數據文件自動擴展
    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
    AUTOEXTEND ON NEXT 100M
    MAXSIZE 10000M;

    設定后查看表空間信息

    SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
    (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
    FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
    WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE

     

    //創建臨時表空間

    create temporary tablespace zfmi_temp
    tempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf'
    size 32m
    autoextend on
    next 32m maxsize 2048m
    extent management local;

    //tempfile參數必須有


    //創建數據表空間

    create tablespace zfmi
    logging
    datafile 'D:\oracle\oradata\zfmi\zfmi.dbf'
    size 100m
    autoextend on
    next 32m maxsize 2048m
    extent management local;

    //datafile參數必須有


    //刪除用戶以及用戶所有的對象

    drop user zfmi cascade;

    //cascade參數是級聯刪除該用戶所有對象,經常遇到如用戶有對象而未加此參數則用戶刪不了的問題,所以習慣性的加此參數


    //刪除表空間
    前提:刪除表空間之前要確認該表空間沒有被其他用戶使用之后再做刪除

    drop tablespace zfmi including contents and datafiles cascade onstraints;

    //including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,表空間刪不掉,所以習慣性的加此參數
    //including datafiles 刪除表空間中的數據文件
    //cascade constraints 同時刪除tablespace中表的外鍵參照

     

    如果刪除表空間之前刪除了表空間文件,解決辦法:

    如果在清除表空間之前,先刪除了表空間對應的數據文件,會造成數據庫無法正常啟動和關閉。
    可使用如下方法恢復(此方法已經在oracle9i中驗證通過):
    下面的過程中,filename是已經被刪除的數據文件,如果有多個,則需要多次執行;tablespace_name是相應的表空間的名稱。
    $ sqlplus /nolog
    SQL> conn / as sysdba;
    如果數據庫已經啟動,則需要先執行下面這行:
    SQL> shutdown abort
    SQL> startup mount
    SQL> alter database datafile 'filename' offline drop;
    SQL> alter database open;
    SQL> drop tablespace tablespace_name including contents;


    //創建用戶并指定表空間

    create user zfmi identified by zfmi
    default tablespace zfmi temporary tablespace zfmi_temp;

    //identified by 參數必須有


    //授予message用戶DBA角色的所有權限

    GRANT DBA TO zfmi;


    //給用戶授予權限

    grant connect,resource to zfmi; (db2:指定所有權限)

     

    導入導出命令:

    Oracle數據導入導出imp/exp就相當于oracle數據還原與備份。exp命令可以把數據從遠程數據庫服務器導出到本地的dmp文件, imp命令可以把dmp文件從本地導入到遠處的數據庫服務器中。 利用這個功能可以構建兩個相同的數據庫,一個用來測試,一個用來正式使用。

    執行環境:可以在SQLPLUS.EXE或者DOS(命令行)中執行,
    DOS中可以執行時由于 在oracle 8i 中 安裝目錄ora81BIN被設置為全局路徑,
    該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。
    oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個文件有可能是被包裝后的類文件。
    SQLPLUS.EXE調用EXP.EXE、IMP.EXE所包裹的類,完成導入導出功能。

    下面介紹的是導入導出的實例。
    數據導出:
    1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:daochu.dmp中
       exp system/manager@TEST file=d:daochu.dmp full=y
    2 將數據庫中system用戶與sys用戶的表導出
       exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
    3 將數據庫中的表inner_notify、notify_staff_relat導出
        exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

    4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
       exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

    上面是常用的導出,對于壓縮,既用winzip把dmp文件可以很好的壓縮。
    也可以在上面命令后面 加上 compress=y 來實現。

    數據的導入
    1 將D:daochu.dmp 中的數據導入 TEST數據庫中。
       imp system/manager@TEST file=d:daochu.dmp
       imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
       上面可能有點問題,因為有的表已經存在,然后它就報錯,對該表就不進行導入。
       在后面加上 ignore=y 就可以了。
    2 將d:daochu.dmp中的表table1 導入
    imp system/manager@TEST file=d:daochu.dmp tables=(table1)

    基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。

    注意:
    操作者要有足夠的權限,權限不夠它會提示。
    數據庫時可以連上的。可以用tnsping TEST 來獲得數據庫TEST能否連上。

    附錄一:
    給用戶增加導入數據權限的操作
    第一,啟動sql*puls
    第二,以system/manager登陸
    第三,create user 用戶名 IDENTIFIED BY 密碼 (如果已經創建過用戶,這步可以省略)
    第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
       DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
          DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字
    第五, 運行-cmd-進入dmp文件所在的目錄,
          imp userid=system/manager full=y file=*.dmp
          或者 imp userid=system/manager full=y file=filename.dmp

    執行示例:
    F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

    屏幕顯示
    Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
    (c) Copyright 2000 Oracle Corporation. All rights reserved.

    連接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
    With the Partitioning option
    JServer Release 8.1.7.0.0 - Production

    經由常規路徑導出由EXPORT:V08.01.07創建的文件
    已經完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的導入
    導出服務器使用UTF8 NCHAR 字符集 (可能的ncharset轉換)
    . 正在將AICHANNEL的對象導入到 AICHANNEL
    . . 正在導入表                  "INNER_NOTIFY"          4行被導入
    準備啟用約束條件...
    成功終止導入,但出現警告。


    附錄二:
    Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的.
    先建立import9.par,
    然后,使用時命令如下:imp parfile=/filepath/import9.par
    例 import9.par 內容如下:
            FROMUSER=TGPMS      
            TOUSER=TGPMS2     (注:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)         
            ROWS=Y
            INDEXES=Y
            GRANTS=Y
            CONSTRAINTS=Y
            BUFFER=409600
            file==/backup/ctgpc_20030623.dmp
            log==/backup/import_20030623.log

    posted @ 2010-06-27 01:56 雪山飛鵠 閱讀(968) | 評論 (0)編輯 收藏

    數據字典dict總是屬于Oracle用戶sys的。
    1、用戶:
     select username from dba_users;
    改口令
     alter user spgroup identified by spgtest;
    2、表空間:
     select * from dba_data_files;
     select * from dba_tablespaces;//表空間
     select tablespace_name,sum(bytes), sum(blocks)
    from dba_free_space group by tablespace_name;//空閑表空間
     select * from dba_data_files
    where tablespace_name='RBS';//表空間對應的數據文件
     select * from dba_segments
    where tablespace_name='INDEXS';
    3、數據庫對象:
     select * from dba_objects;
     CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
     PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
    4、表:
     select * from dba_tables;
     analyze my_table compute statistics;->dba_tables后6列
     select extent_id,bytes from dba_extents
     where segment_name='CUSTOMERS' and segment_type='TABLE'
     order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滾段的空間分配信息
     列信息:
    select distinct table_name
    from user_tab_columns
    where column_name='SO_TYPE_ID';
    5、索引: 
     select * from dba_indexes;//索引,包括主鍵索引
     select * from dba_ind_columns;//索引列
     select i.index_name,i.uniqueness,c.column_name
    from user_indexes i,user_ind_columns c
     where i.index_name=c.index_name
     and i.table_name ='ACC_NBR';//聯接使用
    6、序列:
     select * from dba_sequences;
    7、視圖:
     select * from dba_views;
     select * from all_views;
    text 可用于查詢視圖生成的腳本
    8、聚簇:
     select * from dba_clusters;
    9、快照:
     select * from dba_snapshots;
    快照、分區應存在相應的表空間。
    10、同義詞:
     select * from dba_synonyms
    where table_owner='SPGROUP';
    //if owner is PUBLIC,then the synonyms is a public synonym.
     if owner is one of users,then the synonyms is a private synonym.
    11、數據庫鏈:
     select * from dba_db_links;
    在spbase下建數據庫鏈
     create database link dbl_spnew
     connect to spnew identified by spnew using 'jhhx';
     insert into acc_nbr@dbl_spnew
     select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
    12、觸發器:
     select * from dba_trigers;
    存儲過程,函數從dba_objects查找。
    其文本:select text from user_source where name='BOOK_SP_EXAMPLE';
    建立出錯:select * from user_errors;
    oracle總是將存儲過程,函數等軟件放在SYSTEM表空間。
    13、約束:
    (1)約束是和表關聯的,可在create table或alter table table_name add/drop/modify來建立、修改、刪除約束。
    可以臨時禁止約束,如:
     alter table book_example
     disable constraint book_example_1;
     alter table book_example
     enable constraint book_example_1;
    (2)主鍵和外鍵被稱為表約束,而not null和unique之類的約束被稱為列約束。通常將主鍵和外鍵作為單獨的命名約束放在字段列表下面,而列約束可放在列定義的同一行,這樣更具有可讀性。
    (3)列約束可從表定義看出,即describe;表約束即主鍵和外鍵,可從dba_constraints和dba_cons_columns 查。
     select * from user_constraints
     where table_name='BOOK_EXAMPLE';
     select owner,CONSTRAINT_NAME,TABLE_NAME
    from user_constraints
    where constraint_type='R'
    order by table_name;
    (4)定義約束可以無名(系統自動生成約束名)和自己定義約束名(特別是主鍵、外鍵)
    如:create table book_example
    (identifier number not null);
    create table book_example
    (identifier number constranit book_example_1 not null);
    14、回滾段:
    在所有的修改結果存入磁盤前,回滾段中保持恢復該事務所需的全部信息,必須以數據庫發生的事務來相應確定其大小(DML語句才可回滾,create,drop,truncate等DDL不能回滾)。
    回滾段數量=并發事務/4,但不能超過50;使每個回滾段大小足夠處理一個完整的事務;
     create rollback segment r05
     tablespace rbs;
     create rollback segment rbs_cvt
     tablespace rbs
     storage(initial 1M next 500k);
    使回滾段在線
     alter rollback segment r04 online;
    用dba_extents,v$rollback_segs監測回滾段的大小和動態增長。
    回滾段的區間信息
     select * from dba_extents
     where segment_type='ROLLBACK' and segment_name='RB1';
    回滾段的段信息,其中bytes顯示目前回滾段的字節數
     select * from dba_segments
    where segment_type='ROLLBACK' and segment_name='RB1';
    為事物指定回歸段
     set transaction use rollback segment rbs_cvt
    針對bytes可以使用回滾段回縮。
     alter rollback segment rbs_cvt shrink;
     select bytes,extents,max_extents from dba_segments
    where segment_type='ROLLBACK' and segment_name='RBS_CVT';
    回滾段的當前狀態信息:
     select * from dba_rollback_segs
    where segment_name='RB1';
    比多回滾段狀態status,回滾段所屬實例instance_num
    查優化值optimal
     select n.name,s.optsize
    from v$rollname n,v$rollstat s
     where n.usn=s.usn;
    回滾段中的數據
     set transaction use rollback segment rb1;/*回滾段名*/
     select n.name,s.writes
    from v$rollname n,v$rollstat s
     where n.usn=s.usn;
    當事務處理完畢,再次查詢$rollstat,比較writes(回滾段條目字節數)差值,可確定事務的大小。
    查詢回滾段中的事務
     column rr heading 'RB Segment' format a18
     column us heading 'Username' format a15
     column os heading 'Os User' format a10
     column te heading 'Terminal' format a10
     select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
    from v$lock l,v$session s,v$rollname r
     where l.sid=s.sid(+)
     and trunc(l.id1/65536)=R.USN
     and l.type='TX'
     and l.lmode=6
     order by r.name;
    15、作業
    查詢作業信息
     select job,broken,next_date,interval,what from user_jobs;
     select job,broken,next_date,interval,what from dba_jobs;
    查詢正在運行的作業
     select * from dba_jobs_running;
    使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作業。間隔10秒鐘
    exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作業。間隔11分鐘使用包exec dbms_job.remove(21)刪除21號作業。
    posted @ 2010-06-27 01:45 雪山飛鵠 閱讀(286) | 評論 (0)編輯 收藏

    1、創建數據庫
    CREATE DATABASE frk
    AUTOMATIC STORAGE NO  ON
    'C:\' USING CODESET UTF-8 TERRITORY CN COLLATE
    USING SYSTEM PAGESIZE 32768
    CATALOG TABLESPACE  MANAGED BY DATABASE
    USING ( FILE 'E:\db2 data\frksysdectablespace' 51200 ) 
    USER TABLESPACE  MANAGED BY DATABASE
    USING ( FILE 'E:\db2 data\frksysusertablespace' 51200 )
    TEMPORARY TABLESPACE  MANAGED BY DATABASE
    USING ( FILE 'E:\db2 data\frksystemptablespace' 51200 ) ;
    2、創建緩沖池
    CONNECT TO FRK;
    CREATE BUFFERPOOL BUFFER1 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
    CREATE BUFFERPOOL BUFFER2 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
    CREATE BUFFERPOOL BUFFER3 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
    CREATE BUFFERPOOL BUFFER4 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
    CONNECT RESET;
    3、創建表空間
    CONNECT TO FRK;
    CREATE  REGULAR  TABLESPACE FRKREGTABLESPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frkregtablespacedata' 16000 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER1  DROPPED TABLE RECOVERY ON;
    CREATE  SYSTEM TEMPORARY  TABLESPACE FRKSYSTEMPTSPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frmsystemtablespacedata' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER2 ;
    CREATE  USER TEMPORARY  TABLESPACE FRKUSERTEMPTSPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frkusertemptablespacedata' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER3 ;
    CREATE  LARGE  TABLESPACE FRKLAGGERTSPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frkloggertablespacedata' 16000 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER4 ;
    CONNECT RESET;
    4、創建表
    CREATE TABLE abc(
      id integer NOT NULL ,
      name VARCHAR(180))
    IN FRKREGTABLESPACE;
    posted @ 2010-06-27 01:41 雪山飛鵠 閱讀(2809) | 評論 (0)編輯 收藏

    1、用戶可以通過DB2的工具創建數據庫
    2、創建緩沖層 一般建三個32K頁的緩沖池
    3、創建三個表空間,系統表空間、用戶表空間、常規表空間,這三個表空間分別使用剛才創建的緩沖池
    4、創建數據庫表
    (1)無主鍵
    create table helpDoConfg
    (
       ID                   INTEGER ,
       IP                   VARCHAR(16),
       PORT                 VARCHAR(8),
       projectName        VARCHAR(16)
    )  in webwfuserspace;
    (2)主鍵自增長但不控制起點
    create table helpDoConfg
    (
       ID                   INTEGER                not null generated  as identity,
       IP                   VARCHAR(16),
       PORT                 VARCHAR(8),
       projectName        VARCHAR(16)
    )  in webwfuserspace;
    (3)主鍵自增長控制起點
    create table helpDoConfg
    (
       ID   INTEGER   NOT NULL  GENERATED BY DEFAULT AS IDENTITY (START WITH 20000, INCREMENT BY 1, CACHE 20, NO CYCLE,

    NO ORDER),
       IP                   VARCHAR(16),
       PORT                 VARCHAR(8),
       projectName        VARCHAR(16)
    )  in webwfuserspace;
    posted @ 2010-06-27 01:40 雪山飛鵠 閱讀(1774) | 評論 (0)編輯 收藏

    ORACLE中,表空間是數據管理的基本方法,所有用戶的對象要存放在表空間中,也就是用戶有空間的使用權,才能創建用戶對象.否則是不充許創建對象,因為就是想創建對象, 如表,索引等,也沒有地方存放,Oracle會提示:沒有存儲配額.

      因此,在創建對象之前,首先要分配存儲空間.
      分配存儲,就要創建表空間:
      創建表空間示例如下:
    create tablespace knowledgeuserspace logging datafile 'F:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management

    local uniform segment space management auto;

    上面的語句分以下幾部分:
    第一: create tablespace knowledgeuserspace  創建一個名為 knowledgeuserspace  的表空間.
        對表空間的命名,遵守Oracle 的命名規范就可了.
       ORACLE可以創建的表空間有三種類型:
    (1)TEMPORARY: 臨時表空間,用于臨時數據的存放;
    創建臨時表空間的語法如下:
    CREATE TEMPORARY TABLESPACE "SAMPLE"......
       (2)UNDO : 還原表空間. 用于存入重做日志文件.
    創建還原表空間的語法如下:
    CREATE UNDO TABLESPACE "SAMPLE"......
    (3)用戶表空間: 最重要,也是用于存放用戶數據表空間
        可以直接寫成: CREATE TABLESPACE "SAMPLE"
    TEMPORARY 和 UNDO 表空間是ORACLE 管理的特殊的表空間.只用于存放系統相關數據.
    第二:   LOGGING 有 NOLOGGING 和 LOGGING 兩個選項,
          NOLOGGING: 創建表空間時,不創建重做日志.
         LOGGING 和NOLOGGING正好相反, 就是在創建表空間時生成重做日志.
    用NOLOGGING時,好處在于創建時不用生成日志,這樣表空間的創建較快,但是沒能日志,數據丟失后,不能恢復,但是一般我們在創建表空間時,是沒有數據的,按通常的做法,是建完表

    空間,并導入數據后,是要對數據做備份的,所以通常不需要表空間的創建日志,因此,在創建表空間時,選擇 NOLOGGING,以加快表空間的創建速度.
    第三: DATAFILE 用于指定數據文件的具體位置和大小.
    如: datafile 'F:\OracleData\knowledge_data.dbf' size 20m
    說明文件的存放位置是 'F:\OracleData\knowledge_data.dbf' size 20m , 文件的大小為20M.
    如果有多個文件,可以用逗號隔開:
    'F:\OracleData\knowledge_data.dbf' size 20m,     'F:\OracleData\knowledge_data1.dbf' size 20m
    但是每個文件都需要指明大小.單位以指定的單位為準如 5M 或 500K.
    對具體的文件,可以根據不同的需要,存放大不同的介質上,如磁盤陣列,以減少IO竟爭.
    指定文件名時,必須為絕對地址,不能使用相對地址.
    第四: EXTENT MANAGEMENT LOCAL 存儲區管理方法
    在Oracle 8i以前,可以有兩種選擇,一種是在字典中管理(DICTIONARY),另一種是本地管理(LOCAL ),從9I開始,只能是本地管理方式.因為LOCAL 管理方式有很多優點.
    在字典中管理(DICTIONARY): 將數據文件中的每一個存儲單元做為一條記錄,所以在做DM操作時,就會產生大量的對這個管理表的Delete和Update操作.做大量數據管理時,將會產生

    很多的DM操作,嚴得的影響性能,同時,長時間對表數據的操作,會產生很多的磁盤碎片,這就是為什么要做磁盤整理的原因.
    本地管理(LOCAL): 用二進制的方式管理磁盤,有很高的效率,同進能最大限度的使用磁盤. 同時能夠自動跟蹤記錄臨近空閑空間的情況,避免進行空閑區的合并操作。
    第五: SEGMENT SPACE MANAGEMENT  
    磁盤擴展管理方法:
    SEGMENT SPACE MANAGEMENT: 使用該選項時區大小由系統自動確定。由于 Oracle 可確定各區的最佳大小,所以區大小是可變的。
    UNIFORM SEGMENT SPACE MANAGEMENT:指定區大小,也可使用默認值 (1 MB)。
    第六: 段空間的管理方式:
    AUTO: 只能使用在本地管理的表空間中. 使用LOCAL管理表空間時,數據塊中的空閑空間增加或減少后,其新狀態都會在位圖中反映出來。位圖使 Oracle 管理空閑空間的行為更加

    自動化,并為管理空閑空間提供了更好的性,但對含有LOB字段的表不能自動管理.
    MANUAL: 目前已不用,主要是為向后兼容.
    第七: 指定塊大小. 可以具體指定表空間數據塊的大小.
    創建例子如下:
    create tablespace knowledgeuserspace logging datafile 'F:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management

    local uniform segment space management auto;
    SQL> /
    表空間已創建。
    要刪除表空間進,可以
    SQL> drop tablespace knowledgeuserspace;
    表空間已丟棄。

    創建表用、表空間、用戶授權完成的過程:
    --創建臨時表空間
    create temporary tablespace knowledge_temp  tempfile 'd:\OracleData\knowledge_temp.dbf' size 10m autoextend on next 10m maxsize unlimited extent management local;
    --創建數據表空間
    create tablespace knowledgeuserspace logging datafile 'd:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management local uniform segment space management auto;
    --創建用戶并指定表空間
    create user knowledge identified by knowledge default tablespace knowledgeuserspace temporary tablespace knowledge_temp;
    --給用戶授予權限
    grant connect,resource,dba to knowledge;
    --連接用戶或用戶登錄
    conn knowledge/knowledge;
    posted @ 2010-06-27 01:38 雪山飛鵠 閱讀(2612) | 評論 (0)編輯 收藏

    僅列出標題
    共22頁: First 上一頁 13 14 15 16 17 18 19 20 21 下一頁 Last 
    主站蜘蛛池模板: 精品久久亚洲中文无码| 亚洲视频在线免费看| 中文字幕在线亚洲精品 | 青娱乐免费在线视频| 极品美女一级毛片免费| 久久久亚洲欧洲日产国码是AV| 欧洲美熟女乱又伦免费视频| 亚洲午夜精品一区二区公牛电影院| 日韩毛片免费在线观看| 无码国产精品一区二区免费vr| 国产日产亚洲系列| 丁香花免费高清视频完整版| 国产精品小视频免费无限app| 亚洲国产av美女网站| 亚洲中文字幕久久精品无码APP | 中文字幕视频免费| 黄网站在线播放视频免费观看| 少妇亚洲免费精品| 每天更新的免费av片在线观看| 一级毛片成人免费看a| 亚洲最大成人网色香蕉| 久久91亚洲人成电影网站| 日韩毛片免费在线观看| 免费黄色福利视频| 国产成人无码区免费网站| 国产精品国产亚洲区艳妇糸列短篇 | 久久国产乱子伦精品免费不卡| jzzijzzij在线观看亚洲熟妇| 精品日韩亚洲AV无码一区二区三区 | 黄页网站在线观看免费| 亚洲Av高清一区二区三区| 亚洲精品无码午夜福利中文字幕| 免费羞羞视频网站| 桃子视频在线观看高清免费完整| 99精品视频免费| 一级毛片完整版免费播放一区| 久久精品国产亚洲av天美18| 亚洲精品国产精品国自产网站 | 暖暖免费中文在线日本| 亚洲综合精品成人| 久久精品蜜芽亚洲国产AV|