© Copyright International Business Machines Corporation 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
在工作台中有两种新类型的数据项目:
- 数据设计项目
- 数据开发项目
数据设计项目用于创建和存储数据模型,例如物理数据模型和逻辑数据模型。数据开发项目用于创建和存储数据应用程序开发对象,例如存储过程和用户定义的函数(又称为例程)。在数据设计项目中,还可以将例程看作物理数据模型的一部分。但是,数据设计项目对例程的开发支持非常有限。并且,在数据设计项目中,没有为例程提供任何 SQL 工具支持。如果要开发例程,则建议您使用指定的数据开发项目,该项目提供更完善的支持,包括向导、例程编辑器、调试支持和 SQL 工具集成。
在表数据编辑器中,如果对未包含主键的 XML 表执行 XML 验证,则仅当第一次插入 XML 值时,XML 验证才起作用。此外,对带有 XML 验证功能的现有 XML 列进行更新时将失败。
变通方法:为包含 XML 列的表创建主键。
在此编辑器中处理多个根元素会导致保存带注释 XSD 文件时发生错误。
变通方法:为每个根元素分别创建一组 XML 模式文档文件。
要使用 XML 数据类型和处理 XML 模式,必须连接至 UTF-8 数据库。 从数据库返回的 XML 文档数据量没有限制。根据返回的数据量的不同,性能可能会受到不同程度的影响。
- 目前,在执行“运行 SQL”操作期间,SQL 编辑器不支持主机变量。
变通方法:可以从 SQL 构建器中运行 SQL 的 DML 语句。
- 在 SQL 构建器中,不支持全部 SQL 语法。例如,不支持用户定义的类型(UDT)和表函数。
- 不支持将用户定义的类型(UDT)用作例程的参数。
- 要使用 Ant 部署功能从文件系统部署面向 DB2 通用数据库™ iSeries® 版的 Java™ 存储过程,必须确保系统类路径中包含 jt400.jar。如果尝试使用 DeployInstructions.txt 中的指示信息来部署已导出的存储过程,则可能会出现以下错误消息:
...[createsp] 无法连接到目标数据库。
[createsp] com.ibm.db2.jcc.DB2Driver...变通方法:确保系统类路径中包含 db2jcc.jar 和相应的许可证文件。
- 在部署或运行 Java 存储过程时,您可能会看到“无法装入类”错误。如果 RAD V7 的 JDK 版本与 DB2® 服务器的 JDK 版本不一致,并且 DB2 服务器的 JDK 版本较低,则会发生此错误。
变通方法:在使用 JDK 1.4 级别的服务器上部署 Java 存储过程时,应该在“部署例程”向导的“编译选项”字段中指定“-source 1.4”选项。例如,这些服务器包括 DB2 通用数据库 Linux® 版、UNIX® 版和 Windows® 版 V8.2 服务器。通常,可以使用适当的编译选项“-source JDK level”来确保与数据库服务器上的 JDK 级别匹配。
- 在使用 Ant 部署功能来部署存储过程或 UDF 时,如果未将 tools.jar 文件放置在类路径中,则您可能会看到以下消息:
找不到 tools.jar。它应该位于 F:\jre\1.4.2\lib\tools.jar。
tools.jar 是 JRE(Java 运行时环境)的组成部分,而不是 Ant 部署工具的一部分。变通方法:运行 Ant 脚本时并不需要 tools.jar,因此,现在可以忽略此消息。
- 如果在存储过程编辑器中更改了 Java 方法名称,则无法通过在编辑器的“源代码”页中单击鼠标右键并选择“保存”来正确保存该过程。
变通方法:通过单击“文件”->“保存”、按 Ctrl+S 或单击“保存”图标来保存该存储过程。
- 如果在不同服务器之间拖放存储过程或 UDF,例如,从 DB2 通用数据库 Linux 版、UNIX 版和 Windows 版服务器拖放到 DB2 通用数据库 z/OS® 版服务器,则在拖放操作期间,您将看到关于两个服务器之间某些不兼容性的警告。如果您继续执行该操作,然后尝试打开该存储过程或 UDF,则可能会看到错误。
- 在 DB2 UDB Linux 版、UNIX 版和 Windows 版 V8.2 服务器上运行 SQL 概要分析时,如果该服务器缺少 JCC 驱动程序检索错误消息文本时所必需的存储过程 SYSIBM.SQLCAMESSAGECCSID,则会发生空指针异常。
变通方法:可以在不将 retrieveMessagesFromServerOnGetMessage 设置为 true 的情况下创建与该服务器的连接。
- 在监视 SQL 过程执行状态期间,将为该过程中发出的 DML 语句(例如 INSERT、SELECT、DELETE 和 UPDATE)生成事件。但是,不会以确定性方式为过程语句(例如变量赋值)和控制结构(例如 WHILE 或 IF)生成事件。因此,可能无法生成过程语句的概要分析信息。
- 连接至 UNIX DB2 服务器后,如果添加断点或以调试方式运行,则会发生超时异常。
- 无法对名称同时包含英文和中文字符的存储过程运行调试器。
- 只有动态 Java 存储过程支持观察表达式。SQL 和 SQLJ 存储过程不支持观察表达式。
- 如果断点未放置在可执行语句的第一个标记(例如 SET)处,则调试器不会停止。此外,调试器在遇到 DECLARE CONTINUE、CLOSE CURSOR 或 ROLLBACK 时也不会停止。
- 如果在调试 Java 存储过程时选择了“终止”操作,则调试会话可能需要几分钟才能完全终止。在此期间启动的新调试会话的操作可能不稳定。
- 如果所调试的 Java 存储过程调用了另一个 Java 存储过程,则不能调试这个被调用的存储过程。无法单步跳入嵌套存储过程,您在该嵌套存储过程中设置的任何断点都将被忽略。在 Linux、UNIX 和 Windows 上都存在此限制。
- 调试 Java 存储过程时,如果遇到“等待数据包时发生了超时”错误,请尝试增大 Java 超时值的设置。
变通方法:要增大 Java 超时值的设置,请从工作台菜单栏中单击“窗口”>“首选项”。展开 Java 节点,然后单击“调试”。在“调试”首选项页上的“通信超时”部分中,增大“调试器超时(ms)”值。建议您至少将超时值设置为缺省值的两倍。
- 调试 Java 存储过程时,如果使用“更改值”操作来修改值为空字符串的变量,则编辑对话框中的“确定”按钮可能不会转入启用状态。
变通方法:要启用此按钮,请选择“输入求值”单选按钮,将值设置为非空字符串(例如“a”),然后选择“输入文字文本”单选按钮。这样,“确定”按钮就可用了。
- 在调试 Java 存储过程期间,如果未看到局部变量,则表明部署该存储过程时可能未指定 -g 编译器选项。
变通方法:确保在部署 Java 存储过程时指定 -g 编译器选项。
- 如果在“变量”视图中看到“堆栈帧无效”消息,请转到“调试”视图并单击该堆栈帧上方的线程对象,然后单击该堆栈帧。这应该会刷新“变量”视图,而且此错误不会再出现。
- 当调试在 DB2 UDB iSeries 版 V5R4 上运行的 SQLJ 存储过程时,如果尚未应用 iSeries PTF 以将行图更新为与 SQLJ 源代码(而不是 Java 源代码)相对应,则当前执行的行将不会与“调试”视图中指示的 SQLJ 源代码行相对应。
- 无法识别调试器的会话管理器超时首选项(选择“窗口”>“首选项”,然后展开“运行/调试”并单击“DB2 存储过程调试器”,然后修改“会话管理器超时(以分钟计)”字段)。
- 在 DB2 Linux 版、UNIX 版和 Windows 版上,调试器无法处理包含大量变量的存储过程。最大变量数为 200。
- 在调试会话中移动光标:某些情况下,如果某个过程包含多个变量声明,则必须多次单击“单步跳入”或“单步跳过”才能移至下一行。例如,必须单击以下行两次:DECLARE v_dept, v_actdept CHAR(3);单击以下行三次:DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2);即单击次数必须与变量声明的数目相同。
- 在对 Java 存储过程启动调试会话并添加断点后,即使禁用这些断点,这些断点也仍然处于启用状态。
变通方法:启动新调试会话时,应该先除去所有旧断点,然后再添加新断点。
- 某些情况下,如果处理多个数据开发项目,则尝试调试存储过程时可能会发生错误,该错误指示“找不到存储过程 PROCNAME。可能已从工作空间中删除了该过程”或者“找不到源代码”。
- 在调试嵌套的 SQL 存储过程之后,数据输出视图有时仍显示调试器正在运行,这可能会导致以后运行或部署该存储过程时出现问题。
变通方法:需要在装有 Developer 产品的客户机上运行会话管理器。要启动会话管理器,请从产品安装目录下的 bin 目录中运行 db2dbgm.bat 文件。
- 在 DB2 V8 Linux 版、Unix 版、Windows 版和 z/OS 版服务器上,对调试存储过程的支持有局限性。在装有修订包 14 的 DB2 V8 服务器上,只能调试 SQL 过程。要将调试器用于 DB2 V8 服务器,还需要在装有 Developer 产品的客户机上运行会话管理器。要启动会话管理器,请从产品安装目录下的 bin 目录中运行 db2dbgm.bat 文件。
- 现在,ALIAS、MQT、NICKNAME 和 SYNONYM 在整个设计期间受支持,但它们在 EJB 映射过程中不受支持。
- 对 MySQL 4.1 的支持有局限性:在“属性”视图中无法正确显示下列属性:唯一索引、自动递增列、列缺省值 NULL 和二进制。此外,也不支持 C 过程和函数。
- 不支持 Cloudscape® V5.1 触发器、检查约束和视图:数据库资源管理器不显示 Cloudscape V5.1 触发器和检查约束。“属性”视图中的 SQL 主体没有 Cloudscape V5.1 视图。不能对 Cloudscape V5.1 触发器、检查约束或视图生成 DDL 或者进行反向设计。
- 对 Oracle 中的用户定义结构化数据类型的支持有局限性:生成 Oracle 表的 DDL 时,用户定义结构化数据类型的名称不会包括在表定义中。
- 在关闭为了对数据库资源管理器容器中的对象进行比较而打开的比较编辑器后,在数据库资源管理器中刷新容器对象将失败并生成以下异常:如果不执行写事务,则无法修改资源集。例如,如果将物理数据模型中的表与其原始源进行比较,则将生成此异常。
变通方法:发生这种情况时,您可以选择包含容器对象的容器并再次尝试进行刷新。例如,如果刷新表时失败,则尝试刷新包含该表的模式。如果这些尝试仍失败,则必须与数据库断开连接,然后再次进行连接。
如果定义了包含单个 XML 数据类型列的表或者任何包含重复行的表,然后使用表编辑器来删除一行,则将删除所有与所选行相匹配的行。
变通方法:不要使用表数据编辑器来删除包含重复行的表中的行。