我们正在将外部excel文件导入我们的SQL数据库,但我们需要使用sql脚本进行一些完整性检查
这是我的示例数据
Row_no Student_area Student_subject Code
1 Science Science and Tech ABC
2 Science Science and Teck ABC
3 Arts Pschycolgy DEF
4 Arts Pscycology DEF
我需要识别异常
我该怎么做?
干杯
答案 0 :(得分:0)
Oracle SQL有许多简洁的功能,但它还没有表现出人类风格的智能。因此它无法识别数据中的“异常”。我们必须宣布正确的规则。
在您的情况下,您需要定义一组正确的值,最好是作为参考数据表:
create table student_area (student_area varchar2(30));
insert into student_area values ('Science');
insert into student_area values ('Arts');
create table student_subject (student_area varchar2(30),
student_subject varchar2(128),
subject_code varchar2(3));
insert into student_subject values ('Science', 'Science and Tech', 'ABC');
insert into student_subject values ('Arts', 'Psychology', 'DEF');
现在您已准备好评估文件的内容。最简单的方法是将Excel文件转换为CSV并在其上构建外部表。这是一种特殊类型的表,其中数据驻留在外部OS文件中而不是数据库中。 Find out more
如果您创建一个外部表,其列映射到电子表格中的每一列,您可以识别出这样的异常:
select * from external_table ext
where ext.student_area not in ( select s.student_area
from student_area s )
/
select * from external_table ext
where (ext.student_area, ext.student_subject) not in
( select s.student_area, s.student_subject
from student_subject s )
/