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

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

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

    斷點

    每天進步一點點!
    posts - 174, comments - 56, trackbacks - 0, articles - 21

    1、SELECT nvl(C_REMARK,chr(0)) into :sRate
           from T_COMM_CODE
           where c_cde = trim(:sText2) and rownum = 1;

    nvl是個函數,作用是如果第一個參數為空值,則返回第二個參數的值,否則返回第一個參數的值。

    chr(0)將數字0轉化為字符0。

    2、Y.YJKSBH=X.ZXKSBH(+) AND Y.ZLXMID=X.ZLXMID(+)
    (+)表示左連接,就是在做關聯之后,y表中存在而x表中不存在的數據也能查出來。


    posted @ 2009-06-13 17:46 斷點 閱讀(72) | 評論 (0)

    posted @ 2010-01-14 21:53 斷點 閱讀(256) | 評論 (0)編輯 收藏

    原因:出現這個問題,可能有人move過表,或者disable 過索引。
    1、alter table xxxxxx move tablespace xxxxxxx 命令后,索引就會失效。
    2、alter index index_name  unusable,命令使索引失效。

    解決辦法:
    1、重建索引才是解決這類問題的完全的方法。
    alter index index_name rebuild (online);
    2、如果是分區索引只需要重建那個失效的分區 。
    alter index index_name rebuild partition partition_name (online);

    說明:
    1. alter session set skip_unusable_indexes=true;就可以在session級別跳過無效索引作查詢。
    2.分區索引應適用user_ind_partitions。
    3.狀態分4種:
    N/A說明這個是分區索引需要查user_ind_partitions或者user_ind_subpartitions來確定每個分區是否可用;
    VAILD說明這個索引可用;
    UNUSABLE說明這個索引不可用;
    USABLE 說明這個索引的分區是可用的。

    http://www.sudu.cn/info/html/edu/20071225/20526.html
    http://blog.oracle.com.cn/html/65/t-122265.html



    posted @ 2009-05-19 19:16 斷點 閱讀(369) | 評論 (0)

    posted @ 2010-01-14 21:52 斷點 閱讀(1057) | 評論 (0)編輯 收藏

    比如定義為number(4,2),卻要插入一個值200.12的話,就會出錯啊,原因是number(p,s)的問題。

    number(p,s),其中p表示該number的總長度,s為小數位。
    如果s為負數,則會取相應位數的取整。
    例如,如果number(4,-3),則數字1234的存儲值為1000;如果number(4,-2),則數字1234的存儲值為1200。

    在對數據庫表中的字段設定類型時,要注意:
    NUMBER(10,6)  Double   帶有小數
    NUMBER(4)     Long     為整數


    posted @ 2009-05-16 17:31 斷點 閱讀(363) | 評論 (0)

    posted @ 2010-01-14 21:51 斷點 閱讀(7377) | 評論 (0)編輯 收藏

    Blob是指二進制大對象也就是英文Binary Large Object的所寫;
    Clob是指大字符對象也就是英文Character Large Object的所寫。
    因此這兩個類型都是用來存儲大量數據而設計的,其中BLOB是用來存儲大量二進制數據的;CLOB用來存儲大量文本數據。

    在JDBC中有兩個接口對應數據庫中的BLOB和CLOB類型,java.sql.Blob和java.sql.Clob。和你平常使用數據庫一樣你可以直接通過ResultSet.getBlob()方法來獲取該接口的對象。與平時的查找唯一不同的是得到Blob或Clob的對象后,我們并沒有得到任何數據,但是我們可以這兩個接口中的方法得到數據。
    例如:
    Blob b=resultSet.getBlob(1);
    InputStream bin=b.getBinaryStream();
    Clob c=resultSet.getClob(2);
    Reader cReader=c.getCharacterStream():
     
    另外還有一種獲取方法,不使用數據流,而是使用數據塊。
    例如
    Blob b=resultSet.getBlob(1);
    byte data=b.getByte(0,b.length());
    Clob c=resultSet.getClob(2);
    String str=c.getSubString(0,c.length());
    在這里要說明一下,這個方法其實并不安全,如果你很細心的話,那很容易就能發現getByte()和getSubString()兩個方法中的第二個參數都是int類型的,而BLOB和CLOB是用來存儲大量數據的。而且Bolb.length()和Clob.length()的返回值都是long類型的,所以很不安全。


    那么有人肯定要問既然已經有VARCHAR和VARBINARY兩中類型,為什么還要再使用另外的兩種類型呢?
    原因:VARCHAR和VARBINARY兩種類型是有自己的局限性的。首先說這兩種類型的長度還是有限的不可以超過一定的限額,以VARCHAR在ORA中為例長度不可以超過4000;而LONGVARCHAR類型的一個重要缺陷就是不可以使用LIKE這樣的條件檢索。

    另外就是在數據庫中VARCHAR和VARBINARY的存取是將全部內容從全部讀取或寫入,對于100K或者說更大數據來說這樣的讀寫方式,遠不如用流進行讀寫來得更現實一些。


    posted @ 2009-05-16 19:26 斷點 閱讀(166) | 評論 (0)

    posted @ 2010-01-14 21:51 斷點 閱讀(350) | 評論 (0)編輯 收藏

    在oracle中建有date類型的字段,插入可以采取如下方法:

    如果是小時為:1-12 采取如下格式:yyyy-mm-dd HH:MI:SS
    insert into test values(to_date('2009-5-7 07:09:37','yyyy-mm-dd HH:MI:SS'));


    如果是小時為:1-24 采取如下格式:yyyy-mm-dd HH24:MI:SS
    insert into test values(to_date('2009-5-7 17:09:37','yyyy-mm-dd HH24:MI:SS'));


    posted @ 2009-05-07 20:14 斷點 閱讀(145) | 評論 (0)

    posted @ 2010-01-14 21:49 斷點 閱讀(365) | 評論 (0)編輯 收藏

    Caused by: java.sql.BatchUpdateException: ORA-01461: 僅可以為插入 LONG 列的 LONG 值賦值
    我在系統的一個頁面上加載一個.xml文件時,出現了這個錯誤。

    原因:

    當插入數據的長度在1000、2000內,就會拋出這樣的錯誤。


    解決方法:

    思路:將存儲的字符串補上空格,讓其超過2000的長度即可,但僅限與緊急解決問題。
    1、首先在.java文件中引入import org.apache.commons.lang.StringUtils;
    2、在此.java文件的相應的方法里添加如下判斷:

        // 處理ora-1461問題(clob長度在1000-2000之間會出錯)
            if (xml.length() >= 1000 && xml.length() <= 2000) {
                xml = StringUtils.rightPad(xml, 2008);
            }

     

    相關知識:

    LONG: 可變長的字符串數據,最長2G,LONG具有VARCHAR2列的特性,可以存儲長文本一個表中最多一個LONG列
    LONG RAW: 可變長二進制數據,最長2G
    CLOB:  字符大對象Clob 用來存儲單字節的字符數據
    NCLOB: 用來存儲多字節的字符數據
    BLOB: 用于存儲二進制數據
    BFILE: 存儲在文件中的二進制數據,這個文件中的數據只能被只讀訪。但該文件不包含在數據庫內。bfile字段實際的文件存儲在文件系統中,字段中存儲的是文件定位指針.bfile對oracle來說是只讀的,也不參與事務性控制和數據恢復。
    其中CLOB,NCLOB,BLOB都是內部的LOB(Large Object)類型,最長4G,沒有LONG只能有一列的限制。要保存圖片、文本文件、Word文件各自最好采用那種數據類型呢?BLOB最好,LONG RAW也不錯,但Long是oracle將要廢棄的類型,因此建議用BLOB。

    相關鏈接:http://m.tkk7.com/allen-zhe/archive/2008/05/06/198627.html


    posted @ 2009-04-18 13:01 斷點 閱讀(676) | 評論 (0)

    posted @ 2010-01-14 21:48 斷點 閱讀(399) | 評論 (0)編輯 收藏

    今天跟新人安裝oracle后,打開數據庫查看表里面的數據,發現里面的數據全是“靠”字。
    這可是以前沒有出現過的。因此就查了一下,了解到是注冊表的字符級問題。現解決如下:
     
    在注冊表里進行修改:
    開始-->運行里面輸入regedit-->我的電腦\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 里NLS_LANG的值
    以前是:American_America.ZHS16GBK
    現改為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    再一次打開oracle時,數據顯示一切正常。


    posted @ 2009-04-09 15:08 斷點 閱讀(118) | 評論 (0)

    posted @ 2010-01-14 21:47 斷點 閱讀(269) | 評論 (0)編輯 收藏

    現在在企業中,操作oracle數據庫的客戶端,除了PL/SQL外,使用的較多的就是TOAD了!

    為此,我在網上搜索了下,整理了些簡單TOAD的使用技巧,現分享給大家。


    常用快捷鍵:

    F8 調出以前執行的sql命令
    F9 執行全部sql
    Ctrl+t 補全table_name
    Ctrl+. 補全table_name
    alt+ 箭頭上下 看sql history
    Ctrl+Enter 直接執行當前sql
    Ctrl+Shift+F  格式化sql語句。

    如果還覺得不夠用的話,可以在系統菜單空白處點擊右鍵,進入menu shortcuts,自行定義快捷鍵。

     

    toad下修改表中字段的值:
    首先在schema Browser下查找到相應的表,在右邊點擊Data欄,然后選中一條記錄,再點擊Data欄下面的▲(Edit Record),即可修改字段里的值,然后點擊√(Post edit),最后就是Commit了。


    posted @ 2009-04-08 20:50 斷點 閱讀(637) | 評論 (0)

    posted @ 2010-01-14 21:46 斷點 閱讀(1829) | 評論 (0)編輯 收藏

    前序:關于Oracle9i數據的導出與導入問題,折騰我好長時間了,尤其是導入。今天在一位同事的指導下,算是終于成功了,為了記住這位同事的幫助,在此僅以“坤”作為記號。

    正文:

    Oracle數據導出:
    如果是導出本機的Oracle數據庫:
    exp pcisv62/11@ORCL  file="d:\pcisv62081226.dmp"  full=y   
    (ORCL為本地數據庫監聽)

    如果是導出服務器端的Oracle數據:
    exp pcisv62/11@tnsname  file="d:\pcisv62081226.dmp" full=y
    (tnsname為COREV6_DBSERVER,SID為COREV6,主機為DBSERVER。)
    exp pcisv6_ab/11@COREV6_DBSERVER file=d:\v6100210.dmp rows=y buffer=1024000

    注意:必須是 DBA 才能執行完整數據庫或表空間導出操作。


    Oracle數據導入,分以下步驟:
    1.先在Oracle9i的Enterprise Manager Console下,以sys/sys及sysdba身份登陸,在“存儲”-->“表空間”下創建表空間COREV6,同時給其分配合適的空間。
    2.在“安全性”-->“用戶”下創建用戶pcisv62,使用戶默認的表空間為COREV6,同時在“角色”里授予CONNECT、DBA、EXP_FULL_DATABASE、IMP_FULL_DATABASE、RESOURCE。
    3.導入.dmp文件,開始-->運行cmd,導入命令:
    imp pcisv6_ab/11@ORCL file=d:\v6100210.dmp  full=y ignore=y

    注意:如果備份的.dmp文件是以用戶pcisv62導出COREV6空間的數據,那么
    1.新建的用戶最好是pcisv62,否則命令為:
      imp pcisv62/11@ORCL file=d:\v6100210.dmp   fromuser=pcisv62  touser=pcisv6_ab   full=y  ignore=y  rows=y  tablespaces=corev6
    2.與新建用戶關聯的新建空間名必須為COREV6,否則Oracle報找不到COREV6空間的錯誤。

     

    數據成功導入以后,下一步就是配置Tomcat的server.xml文件:
    1.如果用到的是本機上的數據,本地數據源里的部分配置為: username="pcisv62" password="11"

    url="jdbc:oracle:thin:@localhost:1521:orcl"
    2.如果用到的是服務器上的數據,則數據源里的部分配置為: username="pcisv62" password="11"

    url="jdbc:oracle:thin:@dbserver:1521:corev6"(dbserver為服務器的名字,corev6為服務器上Oracle的SID)

     

    oracle的安裝目錄E:\oracle\ora92\network\admin下的tnsnames.ora:
    本地配置:
    ORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 主機名)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCL)
        )
      )
    或服務器配置:
    COREV6_DBSERVER =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = COREV6)
          (SERVER = DEDICATED)
        )
      )


    以下轉載:幾種導入導出的命令方法,以備以后查閱。
    數據導出:
    exp qhmis/qhmis@qhmis  file='d:\backup\qhmis\qhmis20060526.dmp'  grants=y  full=n
     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 將數據庫中的表table1 、table2導出
       exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
     4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
       exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"      
    數據的導入:
     1 將D:\daochu.dmp 中的數據導入 TEST數據庫中。
       imp system/manager@TEST  file=d:\daochu.dmp
       上面可能有點問題,因為有的表已經存在,然后它就報錯,對該表就不進行導入。
       在后面加上 ignore=y 就可以了。
     2 將d:\daochu.dmp中的表table1 導入
     imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)


    posted @ 2009-03-04 17:06 斷點 閱讀(1224) | 評論 (0)

    posted @ 2010-01-14 21:45 斷點 閱讀(677) | 評論 (0)編輯 收藏

    系統環境:WindowXP。

    oracle9i  安裝到最后,更改了:sys口令:sys    system口令:system   

    現在需要以system身份登陸sql*puls,方法有二:

     

    第一種方法:.進入SQL*Plus后在彈出對話框中直接點擊“確定”,   
      請輸入用戶名:sys   as   sysdba   

         請輸入口令:sys  


    第二種方法:進入Dos窗口,輸入一下命令:  
      c:\>sqlplus   /nolog  
      SQL>conn   sys/password   as   sysdba

    注意:sys的權限最大!是默認的DBA!一般不在該用戶下建用戶表,PACKAGE等!system的權限就差一些。


    posted @ 2009-02-27 14:55 斷點 閱讀(96) | 評論 (0)

    posted @ 2010-01-14 21:44 斷點 閱讀(396) | 評論 (0)編輯 收藏

    僅列出標題
    共18頁: First 上一頁 8 9 10 11 12 13 14 15 16 下一頁 Last 
    主站蜘蛛池模板: 亚洲AV无码国产精品色午友在线| 四虎永久免费观看| 亚洲AV无码成人精品区蜜桃 | 亚洲男人天堂2022| 亚洲精品免费观看| 美女视频黄的免费视频网页 | 久久久99精品免费观看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 99久久婷婷国产综合亚洲| 精品无码一级毛片免费视频观看| 亚洲国产精品综合久久网络| 国产精品亚洲一区二区无码| 东北美女野外bbwbbw免费| 午夜性色一区二区三区免费不卡视频 | 国产精品无码亚洲精品2021| 在线观着免费观看国产黄| 国产亚洲精品精华液| 亚洲国语在线视频手机在线| xx视频在线永久免费观看| 亚洲欧洲另类春色校园网站| 国产香蕉九九久久精品免费 | 亚洲精品视频免费观看| 亚洲一区二区三区久久| 成人性生交大片免费看午夜a| 亚洲av无码偷拍在线观看| 又大又黄又粗又爽的免费视频| 一级毛片视频免费观看| 亚洲AV永久无码区成人网站| 日本免费一区二区在线观看| 亚洲av纯肉无码精品动漫| 亚洲中文字幕无码日韩| 国产福利在线观看免费第一福利| 在线观看亚洲免费| 亚洲va无码va在线va天堂| 18禁免费无码无遮挡不卡网站| 国产成人人综合亚洲欧美丁香花| 亚洲人成影院在线无码按摩店| 免费专区丝袜脚调教视频| 人体大胆做受免费视频| 亚洲视频欧洲视频| 一本久久综合亚洲鲁鲁五月天 |