实验四:基本PLSQL程序设计

实验四:基本PLSQL程序设计

实验四:基本 PL/SQL程序设计 1. 实验目的

掌握 PL/SQL程序设计基本技巧,包括基本数据类型、表类型、数组类型、 匿名程序块、控制语句、 PL/SQL中使用 SQL 语句、游标、错误处理等等。

2. 实验内容

在实验二中通过外部表, 建立了 DBLP 测试数据的四个表, 把文件中数据 导入 Oracle 数据库, 但是这四个表还没有主键、 外键约束。 由于表中已经导入 了数据,而数据之间已经存在了不一致性的问题,使得部分表的主键和外键约 束不能建立!本实验就是要设计 PL/SQL程序处理数据中的不一致性问题,使 得数据保持完整性约束,最终可以建立所有四个表的主键和外键约束。

以 FACULTY 用户登录连接数据库,完成如下实验。

(1) 设计一个匿名 PL/SQL程序块,不使用游标,实现对 DBLP 测试数据的 四个表去除重复元组数据 (重复的数据必须留一条记录, 而不能把重复的 记录都删除 ) ,从而建立其 PRIMARY KEY约束。

DECLARE

BEGIN

DELETE FROM test

WHERE rowid not in

(SELECT min(rowid)

FROM test

GROUP BY paperid);

END;

其中, test 表为和 paper 表拥有一样的数据

(2) 使用游标,实现 (1)的功能。

DECLARE

var_paperid test.paperid%TYPE;

CURSOR test_cursor

IS

SELECT paperid

FROM test

GROUP BY paperid

HAVING count(paperid)>1;

BEGIN

OPEN test_cursor;

LOOP

FETCH test_cursor INTO var_paperid;

EXIT WHEN test_cursor%NOTFOUND;

DELETE FROM test

WHERE paperid = var_paperid and rowid <>

(SELECT min(rowid)

FROM test

相关推荐
相关主题
热门推荐