欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

oracle怎么存儲游標 oracle 存儲過程調用有游標的存儲過程

Oracle存儲過程和游標操作

--?第一個題目,我的表叫stu,你別忘了改成你的表名

創(chuàng)新互聯(lián)網絡公司擁有10余年的成都網站開發(fā)建設經驗,成百上千客戶的共同信賴。提供成都做網站、網站制作、網站開發(fā)、網站定制、友情鏈接、建網站、網站搭建、成都響應式網站建設公司、網頁設計師打造企業(yè)風格,提供周到的售前咨詢和貼心的售后服務

create?or?replace?procedure?pro7

as

cursor?c_emp1?is?select?ename,sal?from?stu;

vename?stu.ename%type;

vsal?stu.sal%type;

vnewsal?stu.sal%type;

vfd?number?:=?0;

begin

open?c_emp1;

loop

fetch?c_emp1?into?vename,vsal;

exit?when?c_emp1%notfound;

vfd?:=?vsal*0.2;

if?vfd?=?300

then?update?stu?set?sal?=?sal+vfd?where?ename=vename;

vnewsal?:=?vsal+vfd;

dbms_output.put_line('員工'?||?vename?||?'漲了'?||?vnewsal?||?'工資');

end?if;

end?loop;

close?c_emp1;

end;

oracle存儲過程游標問題

--打開游標并提取后面SQL的第一行數據放到游標中 這里就是打開游標

open for 是隱式游標的寫法 不建議使用 這種游標好象不需要關閉 具體你自己測試下 而且少了expection 處理

fetch mycur into yang_02;

--循環(huán)插入數據

多余了 可以不要 前面有fetch了如果還有這里的話 就只能插入奇數行

其他沒什么問題了 還有你這個過程用ref cursor是浪費 沒必要用 用簡單的顯示游標更好點

oracle數據庫的游標和存儲過程怎么寫?

--創(chuàng)建存儲

CREATE

OR

REPLACE

PROCEDURE

xxxxxxxxxxx_p

(

--參數IN表示輸入參數

OUT表示輸入參數

類型

使用任意Oracle

類型

is_ym

IN

CHAR

)

AS

--定義變量

vs_msg

VARCHAR2(4000);

--錯誤信息變量

vs_ym_beg

CHAR(6);

--起始月份

vs_ym_end

CHAR(6);

--終止月份

vs_ym_sn_beg

CHAR(6);

--同期起始月份

vs_ym_sn_end

CHAR(6);

--同期終止月份

--定義游標(簡單

遍歷

集)

CURSOR

cur_1

IS

SELECT

area_code,CMCODE,SUM(rmb_amt)/10000

rmb_amt_sn,SUM(usd_amt)/10000

usd_amt_sn

FROM

BGD_AREA_CM_M_BASE_T

WHERE

ym

=

vs_ym_sn_beg

AND

ym

=

vs_ym_sn_end

GROUP

BY

area_code,CMCODE;BEGIN

--用輸入參數給變量賦初值

Oralce

SUBSTR

TO_CHAR

ADD_MONTHS

TO_DATE

函數

vs_ym_beg

:=

SUBSTR(is_ym,1,6);

vs_ym_end

:=

SUBSTR(is_ym,7,6);

vs_ym_sn_beg

:=

TO_CHAR(ADD_MONTHS(TO_DATE(vs_ym_beg,'yyyymm'),

-12),'yyyymm');

vs_ym_sn_end

:=

TO_CHAR(ADD_MONTHS(TO_DATE(vs_ym_end,'yyyymm'),

-12),'yyyymm');

--先刪除表

特定條件

數據

DELETE

FROM

xxxxxxxxxxx_T

WHERE

ym

=

is_ym;

--

用內置

DBMS_OUTPUT

put_line

打印

影響

記錄行數

系統(tǒng)變量SQL%rowcount

DBMS_OUTPUT.put_line('del

月記錄='||SQL%rowcount||'條');

INSERT

INTO

xxxxxxxxxxx_T(area_code,ym,CMCODE,rmb_amt,usd_amt)

SELECT

area_code,is_ym,CMCODE,SUM(rmb_amt)/10000,SUM(usd_amt)/10000

FROM

BGD_AREA_CM_M_BASE_T

WHERE

ym

=

vs_ym_beg

AND

ym

=

vs_ym_end

GROUP

BY

area_code,CMCODE;

DBMS_OUTPUT.put_line('ins

月記錄='||SQL%rowcount||'條');

--遍歷游標處理

更新

遍歷游標

幾種

用for語句

比較直觀

FOR

rec

IN

cur_1

LOOP

UPDATE

xxxxxxxxxxx_T

SET

rmb_amt_sn

=

rec.rmb_amt_sn,usd_amt_sn

=

rec.usd_amt_sn

WHERE

area_code

=

rec.area_code

AND

CMCODE

=

rec.CMCODE

AND

ym

=

is_ym;

END

LOOP;

COMMIT;

--錯誤處理部

OTHERS表示除

聲明外

任意錯誤

SQLERRM

系統(tǒng)內置變量保存

前錯誤

詳細信息

EXCEPTION

WHEN

OTHERS

THEN

vs_msg

:=

'ERROR

IN

xxxxxxxxxxx_p('||is_ym||'):'||SUBSTR(SQLERRM,1,500);

ROLLBACK;

--

前錯誤記錄進

志表

INSERT

INTO

LOG_INFO(proc_name,error_info,op_date)

VALUES('xxxxxxxxxxx_p',vs_msg,SYSDATE);

COMMIT;

RETURN;

END;

Oracle存儲過程游標for循環(huán)怎么寫

一、不帶參數的游標for循環(huán)

1

首先編寫存儲過程的整體結構,如下:

create or replace procedure test_proc is

v_date date; --變量定義

begin

select sysdate into v_date from dual;

end test_proc;

2

定義游標:

create or replace procedure test_proc is

v_date date; --定義變量

cursor cur is select * from ldcode; --定義游標

begin

select sysdate into v_date from dual;

end test_proc;

3

編寫for循環(huán):

create or replace procedure test_proc is

v_date date; --定義變量

cursor cur is select * from ldcode where rownum10; --定義游標

begin

select sysdate into v_date from dual;

--游標for循環(huán)開始

for temp in cur loop --temp為臨時變量名,自己任意起

Dbms_Output.put_line(temp.Code); --輸出某個字段,使用"變量名.列名"即可。

end loop;

--游標for循環(huán)結束

end test_proc;

4

測試運行,點擊【DBMS Output】標簽頁查看結果如下圖:

END

二、帶參數的游標for循環(huán)

1

定義帶參數的游標:

cursor cur(v_codetype ldcode.Codetype%TYPE) is

select * from ldcode where codetype = v_codetype; --定義游標

定義游標格式:

cursor 游標名稱(變量定義) is 查詢語句;

注意:

where條件中的變量名v_codetype要與游標定義cur(v_codetype ldcode.Codetype%TYPE)中的一致。

2

編寫for循環(huán)部分:

--游標for循環(huán)開始

for temp in cur('llmedfeetype') loop

--temp為臨時變量名,自己任意起

--cur('llmedfeetype')為"游標名稱(傳入的變量)"

Dbms_Output.put_line(temp.Code); --輸出某個字段,使用"變量名.列名"即可。

end loop;

--游標for循環(huán)結束

3

測試運行,點擊【DBMS Output

oracle存儲過程回到游標結果集怎樣存到表中

有倆種方法:

一種是聲明系統(tǒng)游標,一種是聲明自定義游標,然后后面操作一樣,參數類型為

in out 或out

(1)聲明個人系統(tǒng)游標.(推薦)

create or replace p_temp_procedure

(

cur_arg out sys_refcursor; --方法1

)

begin

open cur_arg for select * from tablename;

end

調用

declare

cur_calling sys_refcursor;

begin

p_temp_procedure(cur_calling); --這樣這個游標就有值了

for rec_next in cur_calling loop

....

end loop;

end;

(2)在包頭中申明一個游表類型,然后調用者申明一個這個類型的游標變量,傳給返回游標的存儲過程 ,存儲過程out這個結果集,這種方法很麻煩.游標類型不能像索引表一樣使用create or replace type方法來創(chuàng)建,所以只能在包中申明,并且需要使用/來執(zhí)行,后面的存儲過程才認這個游標類型.(不推薦,但是建議要知道并且要會這種方式,畢竟它有它存在的道理)

--定義全局變量

create or replace package pkg_package

as

type type_cursor is ref cursor;

type type_record is record

(

test01 varchar2(32),

test02 varchar2(32),

test03 varchar2(32)

);

end;

/

--創(chuàng)建返回游標的存儲過程

create or replace procedure p_temp_procedure

(

cur_out_arg out pkg_package.type_cursor

)

is

begin

open cur_out_arg for select * from test;

end;

/

--調用

declare

cur_out_arg pkg_package.type_cursor;

rec_arg pkg_package.type_record;

begin

p_temp_procedure(cur_out_arg);

fetch cur_out_arg into rec_arg;

dbms_output.put_line(rec_arg.test01);

dbms_output.put_line(rec_arg.test02);

dbms_output.put_line(rec_arg.test03);

end;

新聞標題:oracle怎么存儲游標 oracle 存儲過程調用有游標的存儲過程
鏈接URL:http://aaarwkj.com/article0/hhhsio.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供電子商務ChatGPT、建站公司網站策劃、網站設計網站收錄

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網站優(yōu)化
在线成人影院中文字幕| 欧美成人精品在线观看| 日韩精品极品在线免费视频 | 天堂av在线网址观看| 国产无人区码一区二区| 欧美日韩精品人妻一区| 啄木乌欧美一区二区三| 国产亚洲成人精品久久| 在线观看精品日本一区二| av在线免费观看青青草原| 国产一区二区三区在线视频播放| 人妻中文字幕在线一二区| 禁区正片免费看完整国产 | 日韩精品熟女中文字幕| 人妻少妇中文字幕久久| 日本免费精品一区二区三区中 | 免费在线成人av观看| 一本久久精品午夜福利| 亚洲日本一区二区三区电影| 国产精品久久久久精品日日三级 | 国语av一区二区三区| 日韩一二区不卡在线视频| 久久这里精品中文字幕| 亚洲一区二区精品欧美日韩| 黄片视频免费在线播放大全| 打开网址国语一级黄色片| 亚洲一区二区中文字幕av| 欧美中文字幕精在线不卡| 亚洲精品在线观看日韩欧美| 人妻一区二区三区中文字幕| 国产精品中文字幕第一区| 久久亚洲春色中文字幕| 六十路人妻一区二区三区| 麻豆人妻一区二区三区| 在线视频天堂亚洲天堂| 日韩亚洲一区二区免费| 区一区二区三视频日韩| 免费中文字幕av电影| 五月综合丁香婷婷久久| 黄色黄色片黄色片黄色| 手机不卡在线观看av|