数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
SYBASE 数据库迁移到AS 400 db2的FAQ(二)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

上一篇介绍了前十条建议。

11.如果是单字符,如“”如何组合拼接?

答:同样可以使用CHAR(),进行ASCii 转换

例如:DECLARE  VC_CHAR   CHAR(1);

      DECLARE  VC_TEMP    CHAR(10);

      SET VC_CHAR = CHAR(39);   --  39 IS ‘ ASCii

12Db2如何创建约束?

答:语法如下:ALTER TABLE XHZQ.INFO_SKU_TAB

    ADD CONSTRAINT XHZQ.CKC_C_DIANZICHENG_FLA_INFO_SKU

    CHECK( C_DIANZICHENG_FLAG IN ( '0' , '1' , '2' ) ) ;

13Db2下如何创建索引?

答:CREATE UNIQUE INDEX UNIQUE_NAME  ON PROJECT (PROJNAME)

CREATE INDEX JOB_BY_DPT ON EMPLOYEE (WORKDEPT, JOB)

14Sybase 中的全局变量@@rowcountdb2中如何使用?

答:db2中也有此全局变量,具体使用如下:

通过声明变量tempCount,使用语句

DECLARE   TEMPCOUNT  BIGINT  DEFAULT  = 0;

GET DIAGNOSTICS tempCount = ROW_COUNT;

获得,DB2下的ROW_COUNT等价于@@rowcount

15DB2是如何管理事务的?

答:DB2中事务管理,也是支持自动事务管理和用户管理事务。

CREATE  PROCEDURE  XXX.PROC_NAME

   。。。。。。。)

BEGIN  AUTMIC  --系统自动管理事务

 

END

 

BEGIN   

如果系统自动管理事务,脚本中不允许出现COMMIT, ROLLBACK ,

使用这种方式,如果使用捆绑SQLCODE,SQLSTATE和游标,可以达到系统自动控制游标的功能。

IF (XX)  THEN

  COMMIT WORK HOLD;

ELSE

  ROLLBACK WORK HOLD;

END IF;

END

 

16DB2VARCHAR()函数用法?

答:VARCHAR(Par,length)功能,将par转换为变长字符串

par : 参数character, integer , decimal , numeric, float ,graph

length: 参数字符串长度

例如:SELECT VARCHAR(EMPNO,10)

    INTO :VARHV

    FROM EMPLOYEE

 

17Db2SING()函数用法?

答:sing(par) 功能判断par的大小和零比较

如果par < 0 返回 –1

如果par > 0 返回 1

如果par = 0 返回 0

例如:SELECT SIGN(:PROFIT)

FROM EMPLOYEE

18DB2如何创建用户自定义函数?

答:给出例子如下

/*

function name to_char

argument:  (in)  timestamp, format

comm:将日期转换为制定的字符格式

ruturn:制定格式的字符串

author:   Dekker  date: 2003-09-12

*/

CREATE FUNCTION xhzq_db.to_char ( t1 TIMESTAMP, format VARCHAR(32) )

RETURNS VARCHAR(26)

LANGUAGE SQL

READS SQL DATA

NO EXTERNAL ACTION

BEGIN

DECLARE chs_tmstmp CHAR( 26 );

DECLARE retval VARCHAR( 26 );

SET chs_tmstmp = CHAR( t1 );

CASE TRIM(format)

WHEN 'DD'

THEN SET RETVAL = SUBSTR( chs_tmstmp, 9, 2);

WHEN 'MM'

THEN SET RETVAL = SUBSTR( chs_tmstmp, 6, 2);

WHEN 'YYYY'

THEN SET RETVAL = SUBSTR( chs_tmstmp, 1, 4);

WHEN 'YYYY-MM-DD'

THEN SET RETVAL = SUBSTR( chs_tmstmp, 1, 10);

ELSE SIGNAL SQLSTATE '38Z01'

SET MESSAGE_TEXT = 'INVALID FORMAT SPECIFIED.';

END CASE;

RETURN retval;

END;

 

19Sybase 中使用Getdate()获得当前日期时间,DB2时如何获得?

答:Now(),

VALUES CURRENT DATE;

VALUES CURRENT TIME;

VALUES CURRENT TIMESTAMP;

 

20Db2的在线帮助网址是什么?

http://publib.boulder.ibm.com/iseries/v5r2/ic2989/index.htm?info/db2/rbafzmsthctabl.htm




相关文章

相关软件