UserName = \ PassWord = \Lis/Utility/DBConn.java Lis/Sys/SysConst.java Ui/logon/station.jsp文件 然后整体编译java类 连接配置成功:
可能会出现下面的问题
一:在点击菜单时出现如下错误
得到最新的Ui/logon/ station.jsp文件即可 二:在系统使用的过程中可能在涉及到查询时不能查询到有效数据,这是看tomca后台,会发现SQL执行错误。
这种问题一般是由于我们系统开发中所写的SQL语句不是标准SQL,原来在oracle中能够执行,但在DB2中有些函数不能被识别 一般有这样的几种情况
1. 使用oracle的trim,to_number,to_date,to_char函数,在DB2中是不识别
的,但这种情况我们在DB2中自己定义了这些函数,所以虽然系统中存在这样的非标准SQL,但还是可以执行的
2. 使用了oracle的decode函数,这个函数在DB2环境中不能识别,我们不能
使用,所以我们的一些描述尽量写道数据库ldcode表中,然后在查询中去数据库中得到
3. 在oracle中我们用到了左联结和右连接的(+)写法,在DB2中不能识别,
应该写为标准的左右连接SQL 三:数据中数据类型问题
在我们系统中有很多的数字类型的字段在查询中用到了单引号,虽然在oracle中可以识别(能自动转换)但在DB2中是不能别识别的。这样的错误比较常见,我们要坚决避免
1. 例如 LAQualityAssess表的Mark字段在数据库中是Decimal类型,但我
们在写SQL中写为了where Mark=’10’,虽然在oracle中可以识别,但在DB2中是不能识别,应该写为:Mark=10。在我们开发工作中应该注意。
2. 另外还存在我们在查询SQL中使用length函数时写为了 length(*)=’5’,这
样的语句在oracle中可以识别,但在DB2中也时不能识别的,要写为length(*)=5才可以。
四:js公共文件里出现的问题
在我们使用js的一些公共文件如:EasyQueryVer3.js,CCodeOperate.js时,在一
些条件中内部拼写对上述所说的数字型字段加上了单引号,出现了SQL执行错误
1. 例如:我们在Input.jsp页需要限制管理机构显示为8位,则写为
ondblclick=\
showCodeList('comcode',[this,ManageComName],[0,1],null,8,'(length(trim(comcode))');\
但这样CCodeOperate.js在内部拼写SQL时统一按字符串类型处理,写为了length(trim(comcode))=’8’,这样在DB2中便不能执行,但我们在初期没有去完善CCodeOperate.js文件,所以暂时可以写为这样解决,即将length的结果转换为char型处理 ondblclick=\
showCodeList('comcode',[this,ManageComName],[0,1],null,8,'to_char(length(trim(comcode)))');\
另外如果我们需要显示小于等于8位管理机构的代码,我们可以拼写为这样 ondblclick=\
showCodeList('comcode',[this,ManageComName],[0,1],null,8,'to_char(length(trim(comcode)))<');\但注意一点 在oracle中识别”< =” 的语句,但在DB2中必须写为”<=”,即中间不能加空格,如果在执行过程中发展此类的错误,可以去pubfun中的CodeQueryBL中找相应的名称字段,将”< =”或 “> =”中间的空格去掉即可。
2. 在js中的使用查询easyQueryVer3时,我们在SQL中会用到getWherePart
方法,在后面的字段标示中也会遇到上面提到的数字类型条件中使用单引号问题,这类问题暂时我们也可以在数据库字段上加上to_char条件,便能够执行通过
DB2 环境 设置技巧篇
设置 DB2 环境
恰当地设置 DB2 环境非常重要,这是因为它控制着 DB2 操作和活动的方式。DB2 环境由以下几部分构成:
* DB2 配置文件注册库 * 操作系统环境变量
* DB2 数据库管理器配置参数 * DB2 数据库配置参数
设置配置文件注册库
DB2 配置文件注册库是特定于 DB2 的变量,它会影响 DB2 系统的管理、配置与性能。为使 DB2 配置文件注册库的更改生效,您通常需要停止并重启实例。
要列举所支持的全部 DB2 配置文件注册库:
db2set -lr
要设置 DB2 配置文件注册库:
db2set registry_variable = value
请注意,在变量名、等号和变量值之间没有空格。下面给出一个将 DB2COMM 注册库变量设置为单一值的示例:
db2set DB2COMM=TCPIP
将 DB2COMM 注册库变量设置为多个值的示例如下:
db2set DB2COMM=TCPIP,NPIPE,LOCAL
要将 DB2 配置文件注册库重置为默认值,只需使用与上面相同的命令即可,但不指定任何值:
db2set registry_variable =
要显示服务器上当前设置的所有 DB2 配置文件注册库,请执行以下命令:
db2set -all
您将看到形式如下的输出结果:
[e] DB2PATH=C:Program FilesIBMSQLLIB_01 DB2ACCOUNTNAME=IBM-TP101dwsnow DB2INSTOWNER=IBM-SB2QTSR5RSN DB2PORTRANGE=60001:60004
DB2INSTPROF=C:PROGRA~1IBMSQLLIB~1 DB2COMM=TCPIP,NPIPE,LOCAL [g] DB2_EXTSECURITY=YES [g] DB2SYSTEM=IBM-TP101
[g] DB2PATH=C:Program FilesIBMSQLLIB_01 [g] DB2INSTDEF=DB2V
方括号( [])中包含的标记表示注册库配置文件的作用域,具体解释如下:
* [e] 表示为当前会话或环境所设置的注册库 * 表示用户级注册库 * [n] 表示节点级注册库 * 表示实例级注册库 * [g] 表示全局级注册库
设置系统环境变量
绝大多数 DB2 环境设置都是由 DB2 配置文件注册库控制的。而那些未存储在配置文件注册库中的设置称为操作系统环境变量。设置系统变量的命令将根据您所使用的平台及 UNIX shell 而有所不同。
下面给出几个示例:
* 在 Windows 中: set DB2INSTANCE=PROD
* 在 Linux 和 UNIX 的 Korn shell 中: export DB2INSTANCE=PROD
DB2INSTANCE 是一个需要掌握的重要系统变量。它指定当前应用程序的会话或窗口的默认 DB2 实例。一旦设置好该变量,后续的所有 DB2 命令都将在该实例的作用域内执行。
要了解您当前工作在哪个 DB2 实例中,可运行以下 DB2 命令:
get instance
举个例子,为此,您只要运行以下命令即可:
db2 get instance
此命令的输出结果形式如下:
The current database manager instance is: DB2V
设置配置参数
在 DB2 中,存在两个配置 “级别”。在实例(或数据库管理器)级别,您可为该实例配置整个 DB2 环境,这将影响实例中的所有数据库和使用该实例中数据库的所有应用程序。在数据库 级别,您可配置参数,而这些参数将影响到访问特定数据库的所有应用程序的行为。关于参数的更多信息,请参阅 Monitoring DB2 activity 教程。数据库管理器、数据库配置参数及其值均可使用 DB2 Control Center 或 DB2 命令查看及设置。
在 Control Center 中,右击需要配置或更改的实例或数据库,选择 Configure Parameters。您将看到一个配置参数的列表,并带有简短的描述、其当前及挂起值.
您还可通过使用如下 DB2 命令获得相同的输出结果:
db2 get database manager configuration
db2 get database configuration for database_name
要更新 Control Center 中数据库管理器或数据库配置参数的值,打开 DBM 或 DB Configuration 窗口。找到您想要更改的参数,然后双击其值。单击 ?…? 图标将打开一个包含如何设置变量的提示以及允许范围说明的窗体。
若参数值可立即或动态更改,则在您单击 OK 后,更改立即生效。部分重要性较低的参数无法动态更改,在这种情况下,您将看到其当前值与挂起值不同。挂起值是新值,将在该实例或数据库下一次停止并重启后应用。Pending Value Effective 列告诉您新值将在何时生效。
也可使用以下命令来设置您的数据库管理器或数据库配置参数的值:
db2 update database manager configuration using parameter new_value
db2 update database configuration for database_name using parameter new_value
若您所指定的参数更改不能立即生效,则在您运行了 update db/dbm configuration 命令后,将返回形式如下的警告消息: