當前位置:首頁 » 存儲配置 » oracle存儲過程插入數據

oracle存儲過程插入數據

發布時間: 2022-04-22 20:13:40

1. oracle存儲過程插入一條數據,運行之後,數據不能插入

這種情況屬於插入數據後,沒有提交(commit),導致表被鎖,所以需要進行提交(commit)或者回滾(rollback)操作。

如果當前session已關閉,可通過如下方法殺掉進程。

1、生成Kill Session語句

sql">select'altersystemkillsession'''||SID||','||SERIAL#||''';'from
(
selectdistincta.sid,a.Serial#,status,machine,LOCKWAIT,logon_time
fromv$sessiona,v$locked_objectb
where(a.status='ACTIVE'ora.status='INACTIVE')
anda.sid=b.session_id
andb.ORACLE_USERNAME='XYHISTEST'--加上用戶名是避免把其他系統的會話也關閉,以免傷及無辜

)

2、批量執行第一步生成的語句

altersystemkillsession'sid,serial#';

2. ORACLE存儲過程創建臨時表並插入數據。

存儲過程創建表後,在編譯階段資料庫中並沒有該表。這時向表中插入數據,會提示表不存在。所以,插入語句要賦值到變數里,通過e來執行。

3. oracle資料庫如何利用存儲過程向表中添加數據

實際上存儲過程向表中插入數據和sql執行的區別是不大的,只不過是存儲過程是用loop等循環插入,之後順序執行sql語句,不用命令行執行。

_data_4_pressure_3
is

--Result1VARCHAR2(50);
VAR_numnumber;
begin
VAR_num:=1;

while
VAR_num<1000000
LOOP
insertintorp_trans_log_day
(trans_time,
trans_province,
trans_type,
score_range,
rule_name,
trans_num)
selectto_date('2013/10/29','yyyy-mm-dd'),
round(dbms_random.value(1,300))||'省',
round(dbms_random.value(1,800))||'類型',
round(dbms_random.value(1,100))||'風險分值',
round(dbms_random.value(1,300))||'規則名稱',
'1'
fromal;
commit;
VAR_num:=VAR_num+1;
endloop;

endinsert_data_4_pressure_3;

4. Oracle 存儲過程:如何將查詢到的數據插入到另一個用戶名下的一張表中

看你的這兩個用戶是不是在同一個資料庫中,如果不是同一個資料庫,可以建立一個DBLINK來連接;如果是在同意個庫內可以這樣寫:
insert into A(column1,column2,column3)
select bbb.B.columns1,bbb.B.columns2,bbb.B.columns3 from bbb.B
where bbb.B.columns1=0;

5. oracle 存儲過程插入或更新數據

create or replace trigger ggxx_s_update
BEFORE update on up_org_station
for each row
declare
-- local variables here
PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN
update up_org_station_tmp
SET 欄位1= :NEW.欄位1,
--********
-- 剩下的欄位你自己寫 up_org_station_tmp 表結構與up_org_station一致
WHERE up_org_station_tmp.id = :OLD.id
COMMIT;
GGXX; --存儲過程中 up_org_station 改為 up_org_station_tmp
COMMIT;
end ggxx_s_update;

6. 用oracle存儲過程將一張表的數據查出插入另一張表

1、創建測試表,

create table test_tbl_1(id number, value varchar2(20));

create table test_tbl_2(id number, value varchar2(20));

7. oracle存儲過程怎樣批量插入新數據

需要生成的SQL
insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);

存儲過程實現
create or replace procere proc_casekey_upstate
as
casekey char(14);
begin
for i in 1..10000000 loop
casekey := 'TMP'||lpad(i,7,0); -- TMP0000001
insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
end loop;
commit;
end;

begin
proc_casekey_upstate();
end;

測試發現生成一千萬條數據用了14分鍾左右,性能還是可以了,如果先去掉TMP_NUM_STATUS_ID的外鍵估計更快。
或者:
insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from al connect by level <= 1000000;

8. oracle存儲過程怎麼插入其他資料庫數據

啟動集群
rhcs1:
service
cman
start
rhcs2:
service
cman
start
註:此時在rhcs1上執行完命令之後,在rhcs2也要執行,不然rhcs1找不到rhcs2,就會將rhcs2
fence掉,重啟,重啟也沒關系,重啟好了重新執行命令加入集群就行了!

9. ORACLE 存儲過程插入數據排序混亂

從給出的程序看,執行完程序後,通過xx欄位排序查詢就可以了。不過給出的程序有點問題,是個死循環。(to_date('01/01/2010','mm/dd/yyyy')< to_date('12/31/2015','mm/dd/yyyy')) 這里不含變數,因此這個條件永遠滿足。改成如下程序就可以了。
DECLARE

adddays NUMBER:=0;

i NUMBER:=5;

--步長
BEGIN

WHILE to_date('01/01/2010','mm/dd/yyyy')+adddays<=

to_date('12/31/2015','mm/dd/yyyy')

LOOP

INSERT INTO
XX(XX)values(to_date('01/01/2010','mm/dd/yyyy')+adddays);

adddays:=adddays+i;

END loop;
END;
運行結果:

熱點內容
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
經典矩陣C語言 發布:2024-11-19 08:56:23 瀏覽:268