<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
        主站蜘蛛池模板: 夭天干天天做天天免费看| 永久黄网站色视频免费直播| 亚洲综合久久夜AV | 亚洲va久久久噜噜噜久久 | 97久久免费视频| 久久丫精品国产亚洲av不卡| 最近中文字幕完整版免费高清| 亚洲av午夜福利精品一区| 精品免费视在线观看| 亚洲国产精品线在线观看| 84pao强力永久免费高清| 亚洲精品欧洲精品| 毛片免费视频在线观看| 免费国产在线观看老王影院| 国产精品久久亚洲一区二区| 亚洲福利中文字幕在线网址| 精品日韩99亚洲的在线发布 | 在线播放免费播放av片| 美女黄频免费网站| 亚洲女初尝黑人巨高清| 精品久久亚洲一级α| 一级毛片免费观看不卡视频| 亚洲不卡无码av中文字幕| 国产免费久久久久久无码| 麻豆国产入口在线观看免费| 又硬又粗又长又爽免费看| 夫妻免费无码V看片| 美女免费视频一区二区| 亚洲国产精品特色大片观看完整版 | 国产免费无遮挡精品视频| 永久免费无码日韩视频| 亚洲VA中文字幕无码毛片| 一个人看www在线高清免费看| 亚洲视频中文字幕| 毛片免费视频播放| 久久精品无码专区免费| 亚洲综合图片小说区热久久| 国产免费观看青青草原网站| 成人黄网站片免费视频| 亚洲成a∨人片在无码2023| 中文字幕在亚洲第一在线|