0

嗨,我有一个表学生,其中有几个空字段。Student# 是该表中的主键。我想通过从学生表中选择数据、从 excel 或 doc 文件中填充空字段并插入到 Officerecord 表中来将数据插入到表 Officerecord 中。

Student
=======
Student #   name     Course    age
1            Jess     ENG       19
2            Jane               20
3            Kevin    MAT       19
4            Rob                21

上表中缺少学生 2 和学生 4 的课程数据。我们有一个包含学生编号和课程数据的课程文件。我想从文件中读取数据并将这条记录插入到“Officerecord”表中,如下所示:

Officerecord
===========

OFFICE#        STUDENT#           COURSE

在此表中插入数据时,我不希望任何行包含与学生相关的空值。

请帮忙。

4

3 回答 3

1

SQL Developer 可以将 Excel 文件 (.xls / .xlsx) 直接导入表中,但您需要提前定义表结构。只需右键单击列表中的表格,选择导入数据,选择文件,然后将 excel 列与表格列匹配即可。

理想情况下,您会使用外部表进行导入,但我不相信您可以轻松地使用外部表来操纵电子表格。

无论如何,一旦您加载了两组数据,您就可以对 Student 表进行简单的更新以填充空值。

UPDATE Student
SET (COURSE) =
( SELECT COURSE
  FROM Officerecord
  WHERE Student.Student# = Officerecord.Student# )
WHERE COURSE IS NULL;

请注意,如果您在 Officerecord 中有一个学生的两个条目,这将失败,但您的示例不清楚您希望如何处理这种情况。

于 2013-03-20T17:31:27.340 回答
0

从源数据文件中复制文本并从中创建一个脚本,该脚本是一系列更新语句。

程序员文件编辑器应该在这里为您提供帮助 - 记录一个将原始数据转换为表单语句的宏 update student set course = 'myCourse' where StudentNo = 99 and course is null;

于 2013-03-20T17:21:23.253 回答
0

您可以为 office_records 文件创建一个外部表,并将此表与学生表连接,并对最终 office_records 表的输入进行必要的更改。

外部表的优点是数据变化时只需替换文件即可,无需手动加载文件。

即使用户没有使用 sql developer 或 Toad 从文件插入记录的访问/知识,这也会有所帮助。

于 2019-02-07T11:55:28.513 回答