实验五:高级PLSQL程序设计.doc

上传人:11****ws 文档编号:3086769 上传时间:2019-05-20 格式:DOC 页数:5 大小:52KB
下载 相关 举报
实验五:高级PLSQL程序设计.doc_第1页
第1页 / 共5页
实验五:高级PLSQL程序设计.doc_第2页
第2页 / 共5页
实验五:高级PLSQL程序设计.doc_第3页
第3页 / 共5页
实验五:高级PLSQL程序设计.doc_第4页
第4页 / 共5页
实验五:高级PLSQL程序设计.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验五:高级 PL/SQL 程序设计1. 实验目的熟悉和掌握 PL/SQL 中关于存储过程、函数、包等高级程序设计技术。2. 实验内容(1) 在实验四的基础上,把去除表的重复数据以建立主键约束的匿名程序块,建立相应的存储过程,并学会使用 Oracle SQL DEVELOPER 工具对存储过程进行调试。存储过程:create or replace PROCEDURE del_du_test ASBEGINDELETE FROM testWHERE rowid not in(SELECT min(rowid)FROM testGROUP BY paperid);END del_du_test;执

2、行存储过程:SET SERVEROUT ONbegindel_du_test;end;存储过程:create or replace PROCEDURE del_du_cursor_test ASvar_paperid test.paperid%TYPE;CURSOR test_cursor ISSELECT paperidFROM testGROUP BY paperidHAVING count(paperid)1;BEGINDELETE FROM testWHERE rowid not in(SELECT min(rowid)FROM testGROUP BY paperid);END de

3、l_du_cursor_test;执行存储过程:SET SERVEROUT ONbegindel_du_cursor_test;end;(2) 把(1)中实现的存储过程,改用函数实现。CREATE OR REPLACE FUNCTION f_del_du_test RETURN VARCHAR2ASBEGINDELETE FROM testWHERE rowid not in(SELECT min(rowid)FROM testGROUP BY paperid);RETURN Duplicated rows deleted;END f_del_du_test;DECLAREl_str VARC

4、HAR2(100) := NULL;BEGINl_str := f_del_du_test();DBMS_OUTPUT.PUT_LINE(l_str);END;CREATE OR REPLACE FUNCTION f_del_du_cursor_test RETURN VARCHAR2ASvar_paperid test.paperid%TYPE;CURSOR test_cursor ISSELECT paperidFROM testGROUP BY paperidHAVING count(paperid)1;BEGINOPEN test_cursor;LOOPFETCH test_curso

5、r INTO var_paperid;EXIT WHEN test_cursor%NOTFOUND;DELETE FROM testWHERE paperid = var_paperid and rowid 1;BEGINOPEN test_cursor;LOOPFETCH test_cursor INTO var_paperid;EXIT WHEN test_cursor%NOTFOUND;DELETE FROM testWHERE paperid = var_paperid and rowid 1;BEGINDELETE FROM testWHERE rowid not in(SELECT

6、 min(rowid)FROM testGROUP BY paperid);end DEL_DU_CURSOR_TEST;function F_DEL_DU_TEST return VARCHAR2asbeginDELETE FROM testWHERE rowid not in(SELECT min(rowid)FROM testGROUP BY paperid);RETURN PKG_FUNC - Duplicated rows deleted;end F_DEL_DU_TEST;procedure DEL_DU_TESTasbeginDELETE FROM testWHERE rowid

7、 not in(SELECT min(rowid)FROM testGROUP BY paperid);end DEL_DU_TEST;end DEL_DU;调用:DECLAREl_str VARCHAR2(100) := NULL;BEGINl_str := del_du.f_del_du_cursor_test();DBMS_OUTPUT.PUT_LINE(l_str);END;DECLAREl_str VARCHAR2(100) := NULL;BEGINl_str := del_du.f_del_du_test();DBMS_OUTPUT.PUT_LINE(l_str);END;begindel_du.del_du_cursor_test;end;begindel_du.del_du_test;end;3. 实验总结通过本次试验,我熟悉了 PL/SQL 中关于存储过程、函数、包等高级程序设计技术,同时对存储过程、函数、程序包有了更加深入的认识。当我做出一个代码段,并且执行成后之后,我有了成就感,这也使我对这门课程产生了更大的兴趣。课后仍需多加实践,多加思考。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。