小小

          IT
          <2010年2月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28123456
          78910111213

          統計

          • 隨筆 - 22
          • 文章 - 0
          • 評論 - 6
          • 引用 - 0

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          2010年2月13日

          ORACLE中字符串split的一種方法

          一種方法是用函數:這里轉帖網上摘抄的一個函數

            CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);

            CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)

            RETURN str_split

            PIPELINED

            AS

            v_length   NUMBER := LENGTH(p_string);

            v_start    NUMBER := 1;

            v_index    NUMBER;

            BEGIN

            WHILE(v_start <= v_length)

            LOOP

            v_index := INSTR(p_string, p_delimiter, v_start);

            IF v_index = 0

            THEN

            PIPE ROW(SUBSTR(p_string, v_start));

            v_start := v_length + 1;

            ELSE

            PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));

            v_start := v_index + 1;

            END IF;

            END LOOP;

            RETURN;

            END splitstr;

            這里提供另外一種方法,tbw利用oracle的正則相關函數實現:

            select dbms_lob.substr(regexp_substr('abc,def,ggg,1,2,3,4,5', '[^,]+', 1, x.n)) as player_guid

            from dual a, (select rownum n from dual connect by rownum < 100) x

            這里利用了函數 regexp_substr和connect by

            其中rownum < 100 會連接限制split的次數 '[^,]+'為split拆分的正則表達式,這里為【,】逗號

            上面sql語句結果是:

            abc

            def

            ggg

            1

            2

            3

            4

            5

          posted @ 2010-02-24 05:22 小小it 閱讀(3176) | 評論 (0)編輯 收藏
          sql語句實現循環添加1000個數據

          select * from ausertable order by userid;

            commit;  //執行 結束

            1:最近剛開始用oracle 數據庫,很多東西都不怎么懂,要在tbw賬號表添加 1000個賬號,找了一些資料,經過測試可以使用,開始 我吧語法 都跟SqlServer  里面的混了,花了一個上午的時間,下面就是測試的數據的代碼:特別注意的是:'01'||to_char(i)這里 一直meiyo

            DECLARE

            i number:=0;

            BEGIN

            for i in 1..100 loop

            insert into AUSERTABLE(USERID,USERPID,USERNAME)

            values('01'||to_char(i),'8','武漢');

            dbms_output.put_line(i);

            end loop;

            END;

          posted @ 2010-02-24 05:21 小小it 閱讀(864) | 評論 (0)編輯 收藏
          教你如何Oracle數據導入

          學習Oracle時,你可能會遇到Oracle數據導入問題,這里將介紹Oracle數據導入問題的解決方法,在這里拿出來和大家分享一下。Oracle數據導入實用程序(Import utility)允許從數據庫提取數據,并且將數據寫入操作系統文件。imp使用的基本格式:imp[username[/password[@service]]],以下例舉imp常用用法。

            1. 獲取幫助

            imp help=y

            2. 導入一個完整數據庫

            imp system/manager file=bible_db log=dible_db full=y ignore=y

            3. 導入一個或一組指定用戶所屬的全部表、索引和其他對象

            imp system/manager file=seapark log=seapark fromuser=seapark imp

            system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

            4. 將一個用戶所屬的數據導入另一個用戶

            imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy

            imp system/manager file=tank log=tank fromuser=(seapark,amy)

            touser=(seapark1, amy1)

            5. 導入一個表

            imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

            6. 從多個文件導入

            imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

            log=paycheck, filesize=1G full=y

            7. 使用參數文件

            imp system/manager parfile=bible_tables.par

            Import the sample tables used for the Oracle8i Database Administrator's

            Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import

            8. 增量導入

            imp system./manager inctype= RECTORE FULL=Y FILE=A

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

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

          posted @ 2010-02-13 01:58 小小it 閱讀(673) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 沂南县| 嘉荫县| 鹤山市| 上高县| 大宁县| 桂东县| 临城县| 岳阳市| 西宁市| 上饶市| 青岛市| 新兴县| 富蕴县| 西充县| 钦州市| 河南省| 嫩江县| 武宁县| 元江| 延长县| 清流县| 黄大仙区| 民乐县| 名山县| 高邮市| 威信县| 佛学| 金乡县| 库车县| 色达县| 读书| 嘉禾县| 德昌县| 沽源县| 方山县| 长治县| 寿宁县| 哈尔滨市| 济南市| 伊春市| 教育|