首页 > 开发 > 综合 > 正文

数据库移植注意事项

2024-07-21 02:06:41
字体:
来源:转载
供稿:网友
1.1      数据库移植注意事项1.1.1 取前n条记录
sql server:

    select top n * from xtable

oracle:

    select * from xtable where rownum <=n

db2:

    select * from xtable fetch first n rows only
1.1.2 取当前日期
sql server:

    select getdate()

oracle:

    select sysdate from dual

db2:

    select current timestamp from sysibm.sysdummy1
1.1.3 连接字符串
sql server:

    select 'hello'+'toone'

oracle:

    select 'hello'||'toone' from dual

db2:

    select 'hello'||'toone' from sysimb.sysdummy1
1.1.4 空值转换
sql server:

    select userid,username,isnull(email,'0') from auth_user

oracle:

    select userid,username,nvl(email,'0') from auth_user

db2:

    select userid,username,value(email,'0') from auth_user
1.1.5 类型转换
sql server:

    select convert(varchar,getdate(),20)

oracle:

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

db2:

    select varchar(current timestamp) from sysibm.sysdummy1

注1:

    ■sql server中转换日期格式改变style参数:20 ;

    ■oracle中转换日期格式改变格式化参数:yyyy-mm-dd hh24:mi:ss

        ‘yyyy’、’mm’、’dd’、’hh12’、’hh24’、’mi’、’ss’等;

    ■db2中转换日期格式改变系统常量:current timestamp

        ‘current date’、’current time’等;

注2:

    ■sql server数据类型改变“数据类型参数”:int、varchar等;

    ■oracle数据类型改变函数:to_char()、to_date()、to_number()等;

    ■db2数据类型改变函数:varchar()、int()、date()、time()等;
1.1.6 取值判断
sql server:

select caseconvert =

     case when g.master_type ='system'   then '管理员'

          when g.master_type ='roletype' then '特殊角色'

          else '普通用户'

     end

from global_code g

oracle:

select  case g.master_type

          when 'system'   then '管理员'

          when 'roletype' then '特殊角色'

          else '普通用户'

     end

     as caseconvert

from global_code g

db2:

   

select  case g.master_type

          when 'system'   then '管理员'

          when 'roletype' then '特殊角色'

          else '普通用户'

     end

     as caseconvert

from global_code g
1.1.7 位置
sql server:

    select charindex('e','abcdef')

select patindex('%e%','abcdef')

oracle:

    select instr('abcdef','e') from dual

db2:

    select locate('e','abcdef') from sysibm.sysdummy1
1.1.8 其他函数
 

sql server

oracle

db2

长度

len()

length()

length()

取子串

substring()

substr()

substr()

 

 

 

 

 

 

 

 

 
1.2      附1.2.1 db2v8.1常用命令
■  创建数据库

    在服务器上执行

    db2 create db oatemp

■  删除数据库

    在服务器上执行

    db2 drop db oatemp

■  创建表空间

db2 "create user temporary tablespace userspace1 managed by system using (' userspace1')"

■  启动数据库

    切换用户

       su – db2inst1

    启动数据库:

        db2start

■  关闭数据库

切换用户

       su – db2inst1

    关闭数据库

        db2stop [force]

■  创建远程管理节点

    进入  db2命令窗口

    db2 catalog tcpip node asnode remote 10.1.22.176 server 50000

    db2 catalog db oadb2 as oadb2 at node asnode

■  连接数据库

    db2 connect to oadb2 user db2inst1 using ibmdb2

■  关闭数据库连接

    db2 terminate

■  执行脚本

    db2 -td! -vf ioa2.db2 -z info.log

■  导出脚本

db2look -d oadb2 -i db2inst1 -w ibmdb2 -e -o putsql.db2 -t auth_user

db2look -d oadb2 -i db2inst1 -w ibmdb2 -e -o putsq.db2

■  查看正在使用的端口

    netstat -a

■  查询系统表

    select count(*) from syscat.tables where tabschema=’db2inst1’

    select count(*) from syscat.procedures where procschema=’db2inst1’

■  常用命令

db2 "select 'drop talbe '||tabname from syscat.tables where t

abschema='db2inst1' and type='t'" >db2droptables.db2

 

db2 "select 'drop view '||tabname from syscat.tables where t

abschema='db2inst1' and type='v'" >db2dropviews.db2

 

db2 –vf db2droptables.db2 –z info.log

db2 "select username from auth_user fetch first 3 rows only"

 

■  启动jdbc

    db2jstrt jdbc applet server 6789          (在服务器上执行)

 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表