数据工具发行说明

(C) Copyright International Business Machines Corporation 2000, 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM(R) Corp.

目录

1.0 局限性
   1.1 SQL 工具不可用于数据设计项目中的例程
2.0 已知问题和变通方法
   3.1 数据工具组件的已知问题和变通方法

1.0 局限性

1.1 SQL 工具不可用于数据设计项目中的例程

工作台中有两种新类型的数据项目:

数据设计项目用于创建和存储数据模型,例如,物理数据模型和逻辑数据模型。数据开发项目用于创建和存储数据应用程序开发对象,例如,存储过程和用户定义的函数(又称为例程)。在数据设计项目中,还可以将例程作为物理数据模型的一部分来查看。但是,数据设计项目对例程的开发支持非常有限,而且在数据设计项目中,没有为例程提供任何 SQL 工具支持。如果要开发例程,则建议您使用指定的数据开发项目,因为该项目提供了更全面的支持,包括向导、例程编辑器、调试支持以及 SQL 工具集成。

2.0 已知问题和变通方法

2.1 数据工具组件的已知问题和变通方法

2.1 数据工具组件的已知问题和变通方法

表数据编辑器:
. 如果定义了一个包含单列 XML 数据类型的表或任何包含重复行的表,然后使用表编辑器来删除一行,则将删除与选择的行相匹配的所有行。要解决此问题,请不要使用表数据编辑器来删除包含重复行的表中的行。

. 在表数据编辑器中,如果对不包含主键的 XML 表执行 XML 验证,则仅当您第一次插入 XML 值时,XML 验证才起作用。此外,对现有 XML 列的更新进行 XML 验证将失败。要解决此问题,请为包含 XML 列的表创建主键。


带注释的 XSD 映射编辑器:
. 在此编辑器中处理多个根元素时,如果保存带注释的 XSD 文件,就会导致错误。要解决此问题,请分别为每个根元素创建一组 XML 模式文档文件。


XML:
. 为了使用 XML 数据类型和 XML 模式,必须连接至 UTF-8 数据库。

 . 从数据库返回的有关 XML 文档的数据量不受限制。根据返回的数据量的不同,性能可能会受到不同程度的影响。

 


SQL 工具:
. 当前,在执行运行 SQL 操作期间,SQL 编辑器不支持主变量。要解决此问题,如果 SQL 是 DML 语句,则可以从 SQL 构建器运行该 SQL。 

 . 在 SQL 构建器中,不支持完整的 SQL 语法。例如,不支持用户定义的类型(UDT)和表函数。


例程开发:
. 不支持将用户定义的类型(UDT)作为例程的参数。

 . 要通过使用 Ant 部署功能从文件系统部署面向 DB2(R) UDB iSeries(TM) 版的 Java(TM) 存储过程,必须确保系统类路径中包含 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 通用数据库(TM) Linux(R) 版、UNIX(R) 版和 Windows(R) 版 V8.2 服务器)。通常,使用相应的编译选项“-source JDK 级别”来匹配数据库服务器上的 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 UDB Linux 版、UNIX 版和 Windows 版服务器拖放到 DB2 UDB z/OS(R) 版服务器),则在执行拖放操作期间将看到警告,该警告提示两个服务器不能完全兼容。如果继续操作,然后尝试打开存储过程或 UDF,则您可能会看到错误。


SQL 过程概要分析:
. 在 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 存储过程,则不能调试那个被调用的存储过程。不能单步跳入嵌套存储过程,而且在该嵌套存储过程中设置的任何断点都将被忽略。DB2 UDB 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 存储过程调试器。修改会话管理器超时(m)字段。

 . 在 DB2 Linux 版、UNIX 版和 Windows 版上,调试器不能处理具有大量变量的存储过程。最大的变量数目为 200。

 . 在调试会话中移动光标:在某些情况下,如果某个过程中有多个变量声明,则必须多次单击单步跳入单步跳过才能移至下一行。例如,必须单击以下行两次:DECLARE v_dept, v_actdept CHAR(3); 单击以下行三次:DECLARE v_bonus, v_deptbonus, v_newbonus DECIMAL(9,2); 即单击次数必须与变量声明的数目相等。

 . 如果对 Java 存储过程启动调试会话,然后添加并禁用断点,这些断点仍处于启用状态。要解决此问题,在启动新调试会话时,应该先除去所有旧断点,然后添加新断点。

 . 在某些情况下,如果您处理多个数据开发项目,则在尝试调试一个存储过程时,可能会看到错误,该错误指示“无法找到存储过程 PROCNAME。可能已从工作空间中删除该过程”或“找不到源代码”。

. 如果在终止 Java 存储过程的调试会话之后就直接调试 SQL 存储过程,则该调试器可能会显示“用户定义的函数...已被用户中断。”要解决此问题,请再次尝试调试该 SQL 存储过程。


数据核心功能:
. 现在,ALIAS、MQT、NICKNAME 和 SYNONYM 在执行来回设计期间受支持,但在 EJB 映射过程中不受支持。
. 对 MySQL 4.1 的有限支持:在“属性”视图中不能正确显示下列属性:唯一索引、自动递增列、列缺省值 NULL 和二进制。此外,也不支持 C 过程和函数。

 . Cloudscape(TM) V5.1 不支持触发器、检查约束和视图:在数据库资源管理器中不显示 Cloudscape V5.1 触发器和检查约束。在“属性”视图的 SQL 主体中没有 Cloudscape V5.1 视图。不能生成 DDL 或对 Cloudscape V5.1 触发器、检查约束或视图进行反向设计。