国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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
主站蜘蛛池模板: 国产精品久久久久久久久鸭 | 国产日本在线 | 精品一区二区三区免费视频 | 91精品久久久久久久久久 | 久久久国产一区二区三区 | 国产欧美日韩精品综合 | 亚洲qvod图片区电影 | 国产精品日本一区二区不卡视频 | 国产69精品久久久久777 | 欧美系列在线 | 在线观看国产视频 | 久久精品国产精品亚洲20 | 国产日韩在线视频 | 国产成人精品免费视频大全五级 | 欧美日韩视频一区二区三区 | 九九精品成人免费国产片 | 一本久道久久综合 | 国产欧美在线观看一区二区 | 欧美成人中文字幕在线视频 | 国产精品 视频一区 二区三区 | 一级大黄毛片 | 欧美日韩专区 | 国产国语一级a毛片高清视频 | 在线播放精品一区二区啪视频 | 国产精品第十页 | 国产精品视频第一区二区三区 | 欧美日韩资源 | 国产精品一区二区久久 | 国内一级野外a一级毛片 | 亚洲精品福利在线观看 | 亚洲国产日韩欧美 | 欧美视频免费在线观看 | 91免费视频观看 | 欧美日在线 | 国产夫妻精品 | 99久久精品国内 | 国产在线精品一区二区三区 | 久久精品国产亚洲a不卡 | 在线观看国产一区二区三区 | 国产成人免费高清激情明星 | 国产一级成人毛片 |