當前位置:首頁 » 存儲配置 » oracle存儲過程while

oracle存儲過程while

發布時間: 2022-12-11 09:35:57

1. 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;

2. oracle存儲過程循環插數據

有以下幾個步驟。
在表account中循環插入數據,id從1001到1005。createor
replace
procere
test
is--存儲過程,名稱為test。v_id
int;
--聲明變數。begin。v_id
:=1001;
--ACCOUNT_ID從1001插到1005。while
v_id
<=1005--設置插入的次數。loop。

3. Oracle 定義存儲過程 不能執行,處於無效狀態。

無效狀態有兩種可能,一種是你的存儲過程編輯沒有成功,創建了,但裡面有語法錯誤。
還有一種是存儲過程使用的表有結構上的改變,需要重新編譯一下。
你重新編譯一下,如果不成功,就是有語法問題,你需要修改存儲過程。

4. oracle存儲過程問題,執行之後如截圖顯示叉叉。

寫法有問題,編譯有錯誤

CREATEORREPLACEPROCEDUREp_test(bgnINVARCHAR2,--開始時間
edINVARCHAR2--結束時間
)IS
vsqlVARCHAR2(20000);
tnameVARCHAR2(20);--動態表名
begindateVARCHAR2(20);
enddateVARCHAR2(20);
BEGIN
tname:='動態表名固定部分';
vsql:='';
begindate:=bgn;
enddate:=ed;
WHILE(substr(begindate,1,7)<substr(enddate,1,7))LOOP
vsql:=vsql||'unionall'||chr(10)||
'selectsubstr(記賬時間,1,7),公司名稱,sum(金額)from'||tname||
substr(begindate,1,4)||substr(begindate,6,2)||
'whererptdate=(selectmax(記賬時間)from'||tname||
substr(begindate,1,4)||substr(begindate,6,2)||
')groupbysubstr(記賬時間,1,7),公司名稱'||chr(10);
begindate:=to_char(add_months(to_date(begindate,'yyyy-mm-dd'),1),
'yyyy-mm-dd');
ENDLOOP;
vsql:=vsql||'unionall'||chr(10)||
'selectsubstr(記賬時間,1,7),公司名稱,sum(金額)from'||tname||
substr(enddate,1,4)||substr(enddate,6,2)||
'whererptdate='''||enddate||
'''groupbysubstr(記賬時間,1,7),公司名稱'||chr(10);
vsql:=substr(vsql,12);
--dbms_output.put_line(vsql);
EXECUTEIMMEDIATE(vsql);
ENDp_test;

5. Oracle存儲過程,更新大量數據,如何循環分批次提交

可通過以下方法:

以100條數據為例,如果海量數據可參考。

如test表中有如下數據:

declare
iint;--定義變數
v_countint;--定義變數
v_loopint;--定義變數
begin
selectcount(*)intov_countfromtest;--計算表內數據總數
selectceil(v_count/10)intov_loopfromal;--計算需要循環次數
i:=1;--為i賦值
whilei<=v_looploop--循環退出條件
updatetestsetbegintime=<=10;--執行更新
commit;--提交
i:=i+1;--i依次加1
endloop;--結束循環
end;

6. oracle存儲過程問題

可能是這個存儲過程編譯沒成功。
create or replace procere proc_kaoqin
as
v_id int;
v_id1 int;
v_inprout varchar2(20);
v_inprout1 varchar2(20);
begin
v_id:=1;
loop
exit when (v_id+1)>(select max(id) from kaoqin_temp);
v_id1:=v_id+1;
select in_or_out into v_inprout from kaoqin_temp where id=v_id;
select in_or_out into v_inprout1 from kaoqin_temp where id=v_id1;
if v_inprout=v_inprout1 then
delete from kaoqin_temp where door='部門門' and id in(v_id,v_id1);
end if;
vid:=vid+1;
end loop;
end proc_kaoqin;
重新編譯再試一下。

7. oracle存儲過程中如何對一個變數累加賦值 最好有個例子

1、首先打開oracle資料庫,如下圖所示。

8. 執行oracle存儲過程的時候,提示在①那個地方報命令未正確結束

select * from B where city_code =upp; //這句話有什麼用?貌似沒有用到么


insertintoBvalues((=(=addCode)),------------------①

oracle裡面沒有這種語法,有兩種方式你可以嘗試

  • select xxx into 到變數里。如select xxx into A,然後insert into B values(A);

  • select xxx from xxx。如:

    insert into B

    select (select a from A),(select b from A) from al;

9. oracle存儲過程怎麼寫循環

寫循環的操作方法和步驟如下:

1、第一步,編寫存儲過程的整體結構,然後定義變數,見下圖。

10. oracle存儲過程如何輸出信息

可用DBMS_OUTPUT.PUT_LINE()對存儲過程的進行輸出。

編寫存儲過程:

create or replace procere test_pro(in_num number)

as

M number;

begin

M := in_num;

if 0 < M then

dbms_output.put_line('輸出SQL語句1');

elsif M < 3 then

dbms_output.put_line('輸出SQL語句2');

else

dbms_output.put_line('nothing');

end if;

end;

(10)oracle存儲過程while擴展閱讀;

存儲在資料庫的數據字典中,存儲在當前的應用中安全性由資料庫提供安全保證,必須通過授權才能使用存儲子程序,安全性靠應用程序來保證,如果能執行應用程序,就能執行該子程序。模式描述IN參數用來從調用環境中向存儲過程傳遞值,不能給IN參數賦值,給此參數傳遞的值可以是常量、有值的變數、表達式等。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:601
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:893
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:587
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:772
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:691
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1018
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:262
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:121
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:811
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:720