<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        PL/SQL中如何讓程序每隔幾秒插入一條數據

        來源:懂視網 責編:小采 時間:2020-11-09 16:14:47
        文檔

        PL/SQL中如何讓程序每隔幾秒插入一條數據

        PL/SQL中如何讓程序每隔幾秒插入一條數據:在編寫ORACLE PL/SQL中,如果需要程序執行中暫停幾秒鐘再繼續執行,可以通過oracle內置的dbms_lock.sleep來實現,不過dbms_lock包需要用戶自己安裝。 [root@oraclevm ~]# su - oracle [oracle@oraclevm ~]$ sqlplus / as
        推薦度:
        導讀PL/SQL中如何讓程序每隔幾秒插入一條數據:在編寫ORACLE PL/SQL中,如果需要程序執行中暫停幾秒鐘再繼續執行,可以通過oracle內置的dbms_lock.sleep來實現,不過dbms_lock包需要用戶自己安裝。 [root@oraclevm ~]# su - oracle [oracle@oraclevm ~]$ sqlplus / as

        在編寫ORACLE PL/SQL中,如果需要程序執行中暫停幾秒鐘再繼續執行,可以通過oracle內置的dbms_lock.sleep來實現,不過dbms_lock包需要用戶自己安裝。 [root@oraclevm ~]# su - oracle [oracle@oraclevm ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.

        在編寫ORACLE PL/SQL中,如果需要程序執行中暫停幾秒鐘再繼續執行,可以通過oracle內置的dbms_lock.sleep來實現,不過dbms_lock包需要用戶自己安裝。

        [root@oraclevm ~]# su - oracle

        [oracle@oraclevm ~]$ sqlplus / as sysdba


        SQL*Plus: Release 11.2.0.4.0 Production on Mon May 25 16:36:12 2015


        Copyright (c) 1982, 2013, Oracle. All rights reserved.


        Connected to:

        Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

        With the Partitioning, OLAP, Data Mining and Real Application Testing options

        SQL> startup


        SQL> @?/rdbms/admin/dbmslock.sql


        Package created.


        Synonym created.


        Grant succeeded.


        SQL> grant execute on dbms_lock to public; --授權PUBLIC執行權限

        Grant succeeded.

        SQL> create table test1(id number,name varchar2(40),time date); --創建test1臨時表

        Table created.

        SQL> select * from test1; --無數據

        no rows selected

        SQL> SET TIMING ON --打開時間顯示

        SQL> begin --開始執行測試腳本

        2 insert into test1(id,name,time) values(1,'Andy',sysdate);

        3 DBMS_LOCK.SLEEP(10); --讓程序暫時10秒鐘

        4 insert into test1(id,name,time) values(2,'Shirley',sysdate);

        5 commit;

        6 end;

        7 /

        PL/SQL procedure successfully completed.

        Elapsed: 00:00:10.04 --程序執行時間為10.04秒

        SQL> SELECT ID,NAME,TO_CHAR(TIME,'YYYY/MM/DD HH24:MI:SS') AS TIME FROM TEST1; 

        --查詢執行結果

        ID NAME TIME

        ---------- ------------------------- -----------------

        1 Andy 2014/12/10 10:09:03 --第一條的插入時間是09:03

        2 Shirley 2014/12/10 10:09:13 --第二條的插入時間是09:13

        剛好比第一條晚了10秒鐘

        SQL> drop table test1;

        Table dropped.


        下面給個例子:

        每隔一秒插入一條數據

        vi /tmp/11.sh

        #/bin/sh

        su - oracle <

        sqlplus / as sysdba <

        drop table test;

        drop sequence test_seq;

        create table test (id int,hostname varchar2(50),datetime date);

        create sequence test_seq

        minvalue 1

        maxvalue 100000

        start with 1

        increment by 1

        cache 20;

        declare

        maxrecords constant int:=100000;

        i int :=1;

        begin

        for i in 1..maxrecords loop

        insert into test

        (id,hostname,datetime)

        values

        (test_seq.nextval,'oraclevm',sysdate);

        commit;

        dbms_lock.sleep(1);

        end loop;

        end;

        /

        exit;

        EOF


        [root@oraclevm ~]#chmod 755 /tmp/11.sh

        [root@oraclevm ~]#cd /tmp

        [root@oraclevm ~]#./11.sh

        即可執行。


        先設置一下時間格式

        export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"


        最后進行數據查詢

        spool /tmp/test_oracle

        set linesize 80

        col hostname format a8;

        set colsep' ';

        set pagesize 0;


        SQL> select id,hostname,to_char(datetime,'YYYY-MM-DD HH24:MI:SS') from test;

        1 oraclevm 2014-12-27 10:19:09

        2 oraclevm 2014-12-27 10:19:10

        3 oraclevm 2014-12-27 10:19:11

        4 oraclevm 2014-12-27 10:19:12

        5 oraclevm 2014-12-27 10:19:13

        6 oraclevm 2014-12-27 10:19:14

        7 oraclevm 2014-12-27 10:19:15

        8 oraclevm 2014-12-27 10:19:16

        9 oraclevm 2014-12-27 10:19:17

        10 oraclevm 2014-12-27 10:19:18


        spool用法:

        spool是Oracle SQL*PLUS下的命令,可以用它來導出表中的大量數據,生成格式可以由自己手動控制。

        1. 編寫spool.sql腳本,存放在/tmp目錄下

        set trimspool on
        set linesize 120
        set pagesize 2000
        set newpage 1
        set heading off
        set term off
        set echo off
        set feedback off
        spool /tmp/data.txt
        select deptno || ',' || dname || ',' || loc from dept;
        spool off


        2. 在sql*plus上用scott用戶登錄,執行上面的sql腳本

        !/tmp/spool.sql(linux下)

        @d:\spool.sql(windows下)


        3.觀察相應目錄,生成了data.txt文件,txt中的內容如下:

        10,ACCOUNTING,NEW YORK
        20,RESEARCH,DALLAS
        30,SALES,CHICAGO
        40,OPERATIONS,BOSTON

        總結:

        利用spool可以方便地導出所需要的表,進而可以利用導出的數據進行不同數據庫間的數據遷移。

        下面介紹使用spool的一些常用設置:

        set colsep ' ';    //域輸出分隔符
        set echo off;    //顯示start啟動的腳本中的每個sql命令,缺省為on
        set feedback off;  //回顯本次sql命令處理的記錄條數,缺省為on
        set heading off;   //輸出域標題,缺省為on
        set pagesize 0;   //輸出每頁行數,缺省為24,為了避免分頁,可設定為0。
        set termout off;   //顯示腳本中的命令的執行結果,缺省為on(可以縮寫為term)
        set trimout on;   //去除標準輸出每行的拖尾空格,缺省為off
        set trimspool on;  //去除重定向(spool)輸出每行的拖尾空格,缺省為off


        注意:

        如果直接在sql*plus中執行上面的spool.sql命令,而不通過執行腳本來進行,那么在生成的txt文件中會存在執行的sql語句。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        PL/SQL中如何讓程序每隔幾秒插入一條數據

        PL/SQL中如何讓程序每隔幾秒插入一條數據:在編寫ORACLE PL/SQL中,如果需要程序執行中暫停幾秒鐘再繼續執行,可以通過oracle內置的dbms_lock.sleep來實現,不過dbms_lock包需要用戶自己安裝。 [root@oraclevm ~]# su - oracle [oracle@oraclevm ~]$ sqlplus / as
        推薦度:
        標簽: 數據 如何 一條
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日韩免费观看一区| 久青草国产免费观看| 5555在线播放免费播放| 无码久久精品国产亚洲Av影片 | 夫妻免费无码V看片| 狠狠色香婷婷久久亚洲精品| 18国产精品白浆在线观看免费| 亚洲国产av美女网站| 亚洲成a人片在线播放| 国产一区二区三区亚洲综合| 亚洲国产精品专区在线观看| 久久久受www免费人成| 亚洲成av人片天堂网| 国产精品怡红院永久免费| 亚洲欧美日韩国产精品一区| 国产无遮挡裸体免费视频| 一级美国片免费看| 久久夜色精品国产嚕嚕亚洲av| 亚洲欧洲免费无码| 又粗又硬又大又爽免费视频播放| 亚洲一级片免费看| 亚洲人成电影福利在线播放| 一个人免费观看在线视频www| 亚洲国产精品成人午夜在线观看 | 国产偷窥女洗浴在线观看亚洲 | 亚洲精品无码成人AAA片| 久久永久免费人妻精品下载| 亚洲一区二区三区在线网站| 全部免费毛片免费播放| 99re8这里有精品热视频免费 | 亚洲av色香蕉一区二区三区蜜桃| 亚洲国产精品无码久久青草| 久久精品电影免费动漫| 亚洲高清乱码午夜电影网| 亚洲人JIZZ日本人| 成人au免费视频影院| 在线观看免费黄色网址| 亚洲一线产区二线产区精华| 亚洲天堂免费在线视频| 成人免费视频77777| 免费网站观看WWW在线观看|