网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > DB2教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Window下修改DB2密码后不能启动的.
.选择适合自己的DB2 9.5客户机连通.
.DB2中出现SQL1032N错误现象时的解.
.用AWK实现DB2 数据库 Schema的同.
.抛砖引玉,实例讲解DB2中的表空间.
.获得DB2企业应用程序的最佳性能(.
.DB2存储过程开发最佳实践(1).
.DB2备份恢复数据库步骤.
.带你深入了解IBM DB2数据库的数据.
.教你在IBM DB2数据库中进行包的重.
.DB2崩溃后用事务日志恢复的原理和.
.使用DB2look重新创建优化器访问计.
.浅谈DB2数据库的故障处理及最佳实.
.UNIX环境下手动安装DB2数据库的详.
.Microsoft Excel用ODBC轻松获DB2.
.DB2 实用程序介绍之LOAD实用程序.
.DB2数据库设计和最高性能原则(1.
.DB2 UDB的体系结构和数据库简图.
.详细讲解IBM DB2数据库无限活动日.
.浅谈DB2数据库故障处理及最佳实践.

经验总结:DB2数据库功能及性能使用方法

发表日期:2008-7-8


◆1.安装DB2后可以通过命令窗口这样的命令行方式或控制中心这样的图形界面方式来操作,而如果你的数据库服务端不在本机,则还需要在“客户机配置辅助程序”中做一个客户端连接的配置。

◆2.控制中心中无法增删改数据,只能编写sql语句来实现而quest提供的工具虽然能增加数据,但居然无法用复制、粘贴和Tab键,必须逐个输入,然后用鼠标点击切换现存数据看来可以在单元格中编辑修改,但实际却无法commit,呵呵,还是老老实实写update语句,至于删除数据,更是非写delete语句不可。不过可以用pb以单元格方式编辑数据,相应的一个缺点是编辑数据的按钮和删除表的按钮太近,万一点错了删除表的按钮,pb可是不作提示就把表给删了的,faint

◆3.DB2的视图里不能直接用order by语句,必须这样写 select × from(select a,b,c from table1 order by a)as tab

这种写法的前提是你已经打过补丁了

◆4.存储过程的问题:

DB2提供ltrim函数和rtrim函数,但偏偏不提供trim函数,如果你希望去除字符两端的空格,对不起,必须用ltrim(rtrim()) 的方式调用insert 语句里面居然不能用表达式赋值,必须把值先赋给一个变量调用其他存储过程时竟然不能用常量做参数,必须把这个常量的值赋给一个变量,再以这个变量为参数

select * from table fetch first n rows only 语句居然在存储过程里不可用

◆5.存储过程里可以使用动态sql,但函数里却不可以使用

◆6. 遇到commit或rollback时自动关闭游标,所以需要慎重使用单独提交。

proc builder老是在调试中内存不足,屏幕花掉。而如果断点调试时暂停不进行下去的时间稍微长一点就会提示超时,受不了。

◆7.开发中遇到的一个问题

◆在使用日期变量+1 MONTHS OR 日期变量-1 MONTHS 的方式取日期时,比如日期变量值为 2004-02-29时,存储过程里将日期变量+1 MONTHS 赋值给另一

日期变量时会出错。相应SQLSTATE为01506(db2 ? 01506): 对 DATE 或TIMESTAMP值进行了调整,以校正算术运算得出的无效日期。

◆如果要获取的只是下一月份,可采用的替代方法是获取当前日期所在月份的第一天作为基准后+1 MONTHS OR -1 MONTHS

◆8.存储过程的经验

搞了半天搞不定,一查原来的文档才了,原来tmd该死的DB2的存储过程,是转换为C后,进行编译的。因此在数据库服务器上要安装一个C编译器才能完成存储过程的编译。并且需要使用DB2SET命令,设置DB2_SQLROUTINE_COMPILER_PATH指向C编译器的安装路径。如:db2set

DB2_SQLROUTINE_COMPILER_PATH=E:ProgramFilesMicrosoftVisualStudioVC98Binvcvars32.bat

◆9.对变量的赋值不能用select ..into ..方式而要用set v=(select ..)的方式,代码示例如下。

drop function SXFM.ISORDERSUBMITDATE;

CREATE FUNCTION SXFM.ISORDERSUBMITDATE(IN_ROW_ID DECIMAL(16,0))

RETURNS DATE

LANGUAGE SQL

BEGIN ATOMIC

DECLARE V_SUBMIT_DATE DATE;

DECLARE V_SELL_ID DECIMAL(16, 0);

DECLARE V_BUY_ID DECIMAL(16, 0);

set V_SELL_ID = (SELECT COALESCE(RECEIVE_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);

set V_BUY_ID = (SELECT COALESCE(PAY_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);

set V_SUBMIT_DATE = (SELECT DATE(MAX(A.SUBMIT_DATE)) FROM AM_AUDIT_QUEUE A,SM_USER B,SM_USER C

WHERE A.TABLE_CODE='IS_ORDER' AND A.TABLE_ROW_ID=IN_ROW_ID

AND A.AUDIT_EMP_ID=C.ROW_ID AND C.BRANCH_ID=V_BUY_ID --审核方为付款方

AND A.SUBMIT_EMP_ID=B.ROW_ID AND B.BRANCH_ID=V_SELL_ID); --提交方为收款方

RETURN V_SUBMIT_DATE;

END;

#SYNC 10;

◆10.DB2的游标打开后遇到commit和rollback默认是会关闭的。保持游标打开的方法是在定义游标时加上with hold选项

◆11.F:导出某张表的数据,且该表包含long varchar型数据,该如何操作Q:Export:db2 connect to [dbname] user [user] using [password]db2move [dbname] export -tn [tablename] -u [user] -p[password] (单表)db2move [dbname] export -tn [tablename1,tablename2,...] -u [user] -p [password] (多表)Import:db2move [dbname] import

上一篇:初学者必读:IBM DB2数据库优化措施详解 人气:656
下一篇:讲解IBM DB2数据库的三十一个使用技巧 人气:763
浏览全部DB2的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐