在以下练习中,将导入来自一个硬盘文件的数据,然后将数据从表中导出到另一个文件中。然后,将使用装载实用程序用一个文件中存储的数据填充一个表。
尽管导入、装载和导出实用程序有许多选项,但是本练习只关注以下选项:
对于这些实用程序的完整描述,请参考 DB2 Data Movement Utilities Guide and Reference。
1、使用导入填充 HWLD.AUTHOR 表。在 Control Center 中,右击 AUTHOR 表并选择 Import。
按照下图选择选项:
图1. 导入表 —— Author
2、在这里,让 DB2 使用文件 author.del(下载 部分提供的 zip 文件中包含这个文件)填充 HWLD.AUTHOR 表。与导入相关的消息会放入消息文件 C:DB2hellowldimport.msg。
3、在 Columns 选项卡上,输入寻找 XML 列所用的路径。
图2. 导入表 —— Author
可以点击 Show Command 查看完整的导入语句,如果需要,还可以保存这个语句。应该会返回消息 DB20000,这表示一切正常。
4、使用装载命令填充 HWLD.MODULE 表。右击 MODULE 表并选择 Load。
5、在 Load 向导中选择 Append data to table。点击 Next。
6、找到文件 module.del,从而提供输入文件的完整路径和文件名,然后指定消息文件。
图3. Load 向导 —— 文件
7、点击 Summary。可以查看并保存装载语句,以便在命令行上运行。如果点击 Finish,这个命令应该会成功执行,会看到显示 DB20000 消息的消息窗口。
9、因为 Module 表定义了完整性约束,所以在运行装载实用程序之后,必须验证完整性,否则不能访问这个表。为此,从 Command Editor 运行 SET INTEGRITY 语句。设置完整性检查会确保每一行都满足约束条件,并删除任何不满足条件的行。
10、选择 MODULE 表并点击 Query。
图4. 查询 HWLD.MODULE 表
运行了这个表的默认语句 SELECT *。
11、在选择语句之前,添加以下 SET INTEGRITY 语句:
------------------------------ Commands Entered ----------------------------- set integrity for hwld.module immediate checked; SELECT * FROM HWLD.MODULE; ----------------------------------------------------------------------------- set integrity for hwld.module immediate checked DB20000I The SQL command completed successfully. SELECT * FROM HWLD.MODULE MODULE_ID MODULE_NAME ----------- -------------------- 1 DB2 UDB 2 WebSphere 3 Tivoli 4 Eclipse 5 Rational 6 Lotus Notes 7 Web Commerce 7 record(s) selected. |
12、装载 HWLD.PARTICIPANT 表。在 Control Center 中,右击 PARTICIPANT 表并选择 Load。按照图 34 选择装载选项,这与对 HWLD.MODULE 表的操作相似。文件 participant.del 也包含在 下载 部分提供的 zip 文件中。
图4. Load 向导
13、同样,因为 Participant 表定义了引用约束,装载操作会使它进入检查未决状态,所以在验证所有行之前不能访问它。
14、点击 PARTICIPANT 表并选择 Query。在选择语句之前,输入 SET INTEGRITY 语句。修改选择语句,让它只选择 ID 为 4 的参与者的参与者名称、ID 和测试分数:
------------------------------ Commands Entered ----------------------------- set integrity for hwld.participant immediate checked; SELECT PAR_NAME, PAR_ID, PAR_TEST_SCORE FROM HWLD.PARTICIPANT where PAR_ID=4; ----------------------------------------------------------------------------- set integrity for hwld.participant immediate checked DB20000I The SQL command completed successfully. SELECT PAR_NAME, PAR_ID, PAR_TEST_SCORE FROM HWLD.PARTICIPANT where PAR_ID=4 PAR_NAME PAR_ID PAR_TEST_SCORE ----------------------------------------- -------------------- -------------- mike 4 60 mike 4 80 2 record(s) selected.
15、既然已经填充了表,就该将数据导出到数据文件了。为了选择要导出数据的表,右击 AUTHOR 表并选择 Export。以下窗口打开:
图5. 导出表
16、按照上图所示输入必要的信息。在 Columns 选项卡上,选择将每个 XML 文件放在单独的文件中。可以点击 Show Command 查看并保存命令,供以后在命令行上使用。
应该会看到 DB20000,这表示一切正常。
17、输出文件是 C:DB2hellowlduser1_author.del。user1_author.del 文件的内容如下:
"Claire",1,"DB2 UDB ","<XDS FIL="author.del.001.xml"/>", 100 "Renata",2,"DB2 UDB ","<XDS FIL="author.del.002.xml"/>", 98 "Jane",3,"WEB COMMERCE ","<XDS FIL="author.del.003.xml"/>", 89 |
注意,MODULE_NAME 列被填充到 20 个字符。另外,XML 文档实际上不在 DEL 文件中,这里只有一个引用(XDS),它指向包含 XML 数据的文件。
下面是 author.del.001.xml 的内容(为了便于阅读,已经调整了格式):
<?xml version="1.0" encoding="UTF-8" ?> <author_info> <name>Claire</name> <ID>1</ID> <department> <department_title>DB2 CE</department_title> <responsibility>Supporting customer problems</responsibility> <start_year>2005</start_year> </department> <department> <department_title>DB2 Index Manager</department_title> <responsibility>Develop new features for DB2 indexes</responsibility> <start_year/> </department> </author_info>
如果使用 Web 浏览器查看 XML 文档,会看到:
图6. XML 数据