成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

oracle如何存儲(chǔ)游標(biāo),如何使用oracle的游標(biāo)

Oracle存儲(chǔ)過(guò)程游標(biāo)for循環(huán)怎么寫(xiě)

舉例回答:

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括札達(dá)網(wǎng)站建設(shè)、札達(dá)網(wǎng)站制作、札達(dá)網(wǎng)頁(yè)制作以及札達(dá)網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,札達(dá)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到札達(dá)省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

案例:

--For?循環(huán)游標(biāo)

--(1)定義游標(biāo)

--(2)定義游標(biāo)變量

--(3)使用for循環(huán)來(lái)使用這個(gè)游標(biāo)

declare

--類(lèi)型定義

cursor?c_job

is

select?empno,ename,job,sal

from?emp

where?job='MANAGER';

--定義一個(gè)游標(biāo)變量v_cinfo?c_emp%ROWTYPE?,該類(lèi)型為游標(biāo)c_emp中的一行數(shù)據(jù)類(lèi)型

c_row?c_job%rowtype;

begin

for?c_row?in?c_job?loop

dbms_output.put_line(c_row.empno||'-'||c_row.ename||'-'||c_row.job||'-'||c_row.sal);

end?loop;

end;

Oracle存儲(chǔ)過(guò)程和游標(biāo)操作

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

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數(shù)據(jù)庫(kù)的游標(biāo)和存儲(chǔ)過(guò)程怎么寫(xiě)?

--創(chuàng)建存儲(chǔ)

CREATE

OR

REPLACE

PROCEDURE

xxxxxxxxxxx_p

(

--參數(shù)IN表示輸入?yún)?shù)

OUT表示輸入?yún)?shù)

類(lèi)型

使用任意Oracle

類(lèi)型

is_ym

IN

CHAR

)

AS

--定義變量

vs_msg

VARCHAR2(4000);

--錯(cuò)誤信息變量

vs_ym_beg

CHAR(6);

--起始月份

vs_ym_end

CHAR(6);

--終止月份

vs_ym_sn_beg

CHAR(6);

--同期起始月份

vs_ym_sn_end

CHAR(6);

--同期終止月份

--定義游標(biāo)(簡(jiǎn)單

說(shuō)

遍歷

結(jié)

集)

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

--用輸入?yún)?shù)給變量賦初值

Oralce

SUBSTR

TO_CHAR

ADD_MONTHS

TO_DATE

函數(shù)

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');

--先刪除表

特定條件

數(shù)據(jù)

DELETE

FROM

xxxxxxxxxxx_T

WHERE

ym

=

is_ym;

--

用內(nèi)置

DBMS_OUTPUT

put_line

打印

影響

記錄行數(shù)

系統(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||'條');

--遍歷游標(biāo)處理

更新

遍歷游標(biāo)

幾種

用for語(yǔ)句

比較直觀

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;

--錯(cuò)誤處理部

OTHERS表示除

聲明外

任意錯(cuò)誤

SQLERRM

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

前錯(cuò)誤

詳細(xì)信息

EXCEPTION

WHEN

OTHERS

THEN

vs_msg

:=

'ERROR

IN

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

ROLLBACK;

--

前錯(cuò)誤記錄進(jìn)

志表

INSERT

INTO

LOG_INFO(proc_name,error_info,op_date)

VALUES('xxxxxxxxxxx_p',vs_msg,SYSDATE);

COMMIT;

RETURN;

END;

ORACLE存儲(chǔ)過(guò)程中的動(dòng)態(tài)游標(biāo)

你這種, 表名字是是參數(shù)的情況下, 需要使用 動(dòng)態(tài) sql 來(lái)處理了。

你需要先定義一個(gè)變量, 來(lái)存儲(chǔ)你的 sql 語(yǔ)句。

然后 OPEN v_cursor FOR 那個(gè) sql 語(yǔ)句的字符串

下面是一個(gè)例子:

SQL DECLARE

2 TYPE refcursor IS REF CURSOR;

3 v_cursor REFCURSOR;

4 v_Sql VARCHAR(200);

5 v_name VARCHAR(10);

6 BEGIN

7 -- 動(dòng)態(tài)SQL

8 v_Sql := 'SELECT name FROM test_dysql';

9 -- 打開(kāi)游標(biāo).

10 OPEN v_cursor FOR v_SQL;

11 -- 循環(huán)處理.

12 LOOP

13 -- 填充數(shù)據(jù).

14 FETCH v_cursor INTO v_name;

15 -- 無(wú)數(shù)據(jù)時(shí) 退出循環(huán).

16 EXIT WHEN v_cursor%NOTFOUND;

17 -- 輸出.

18 dbms_output.put_line(v_name);

19 END LOOP;

20 -- 關(guān)閉游標(biāo).

21 CLOSE v_cursor;

22 EXCEPTION

23 WHEN OTHERS THEN

24 -- 發(fā)生異常時(shí),如果游標(biāo)還打開(kāi),那么關(guān)閉掉.

25 IF (v_cursor%isopen) THEN

26 CLOSE v_cursor;

27 END IF;

28 RAISE;

29 END;

30 /

A

B

C

D

E

PL/SQL procedure successfully completed.

本文標(biāo)題:oracle如何存儲(chǔ)游標(biāo),如何使用oracle的游標(biāo)
地址分享:http://jinyejixie.com/article10/hseodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、服務(wù)器托管、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、動(dòng)態(tài)網(wǎng)站、商城網(wǎng)站

廣告

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

成都seo排名網(wǎng)站優(yōu)化
潞西市| 大埔县| 丹寨县| 罗城| 昂仁县| 乐东| 乐东| 凤山县| 绿春县| 长垣县| 景德镇市| 固镇县| 固阳县| 当阳市| 高要市| 普洱| 民权县| 二连浩特市| 资兴市| 凉城县| 柳州市| 鄱阳县| 文昌市| 乌兰察布市| 旬邑县| 花莲市| 乳源| 扶余县| 通化县| 巩义市| 即墨市| 洪江市| 双峰县| 华蓥市| 大英县| 邵东县| 富民县| 渭南市| 郴州市| 吕梁市| 大渡口区|