当前位置:文档之家› Db2基本数据类型

Db2基本数据类型

Db2基本数据类型
Db2基本数据类型

DB2的基本数据类型

字段类型

描述

字段长度及其缺省值

Char(size)

用于保存定长(size)字节的字符串数据。

每行定长(不足部分补为空格);最大长度为254字节,缺省值为每行1字节。Varchar(size)

用于保存变长的字符串数据。其中最大字节长度由(size)指定。

每行长度可变,最大长度为4000字节。数据长度缺省为1

Long Varchar

用于保存变长的字符串数据。

每行长度可变,最大长度为4321700字节。

Graphic(size)

双字节字符串。

每行定长(不足部分补为空格)。最大长度为127字节。

Vargraphic(size)

可变长,双字节字符串。

每行变长。最大长度为127字节。

Long Vargraphic

双字节字符串。

最大长度为16350双字节字符串。

Timestamp

用于改变管理的二进制值数据,包括年月日时分秒毫秒。

字节数为26

Date

保存定长的日期数据,范围为0000年到9999。

每行固定为10字节长度。

Time

保存定长的时间数据。

每行固定为8字节长度。

Integer

保存整型数据,范围为-2147483648到+2147483647。

最大长度为4字节32 - 1字节或4G。

Smallint

保存整型数据,范围为-32768到+32767

最大长度为2字节32 - 1字节或4G。

Bigint

保存整型数据,范围为-9223372036854775808到+9223372036854775807

最大长度为2字节64 - 1字节。

Real

保存单精度浮点数据类型

最大长度为4字节。指数表示。

Double

保存双精度浮点数据类型,范围为-2.23E-308到+2.23E-308。

最大长度为8字节。指数表示。

Float

保存浮点数据类型,范围为-2.23E-308到+2.23E-308。

最大长度为8字节。指数表示。

Numeric(p,s)

保存精确数值数据类型,范围为-10E-38到+10E-38,p是精度,总小数位数(1~38),s是小数位(小数位小于等于p)

最大长度为2~17字节。

Decimal(p,s)

保存精确数值数据类型,范围为-10E-38到+10E-38,p是精度,总小数位数(1~38),s是小数位(小数位小于等于p)

最大长度为2~17字节。

Clob

保存2GB长度以内的单字节文本数据

最大长度为2G。

DbClob

保存1GB长度以内的双字节文本数据。

最大长度为1G字符。

Blob

保存2GB长度以内的二进制数据。

最大长度为2G。支持Not Logged选项和Compact选项

我们今天主要向大家讲述的是DB2数据类型,我们大家都知道DB2内置数据类型其一共可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。

还有一种叫做DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。

数值型DB2数据类型包括SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号为正。

小整型,SMALLINT:小整型是两个字节的整数,精度为5 位。小整型的范围从-32,768 到32,767。

大整型,INTEGER 或INT:大整型是四个字节的整数,精度为10 位。大整型的范围从-2,147,483,648 到2,147,483,647。

巨整型,BIGINT:巨整型是八个字节的整数,精度为19 位。巨整型的范围从-9,223,372,036,854,775,808 到9,223,372,036,854,775,807。

小数型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或NUM(p,s):小数型的值是一种压缩十进

制数,它有一个隐含的小数点。压缩十进制数将以二-十进制编码(binary-coded decimal,BCD)记数法的变体来存储。小数点的位置取决于数字的精度(p)和小数位(s)。小数位是指数字的小数部分的位数,它不可以是负数,也不能大于精度。最大精度是31 位。小数型的范围从-1031+1 到1031-1。

单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的32 位近似值。数字可以为零,或者在从-3.402E+38 到-1.175E-37 或从 1.175E-37 到 3.402E+38 的范围内。

双精度浮点数(Double-precision floating-point),DOUBLE,DOUBLE PRECISION 或FLOAT:双精度浮点数是实数的64 位近似值。数字可以为零,或者在从-1.79769E+308 到-2.225E-307 或从2.225E-307 到1.79769E+308 的范围内。

字符串是字节序列。字符串包括CHAR(n) 类型的定长字符串和VARCHAR(n)、LONG VARCHAR 或CLOB(n) 类型的变长字符串。字符串的长度就是序列中的字节数。

定长字符串,CHARACTER(n) 或CHAR(n):定长字符串的长度介于 1 到254 字节之间。如果没有指定长度,那么就认为是1 个字节。

变长字符串,VARCHAR(n)、CHARACTER VARYING(n) 或CHAR VARYING(n):VARCHAR(n) 类型的字符串是变长字符串,最长可达32,672 字节。

LONG VARCHAR:LONG VARCHAR 类型的字符串是变长字符串,最长可达32,700 字节。

字符大对象字符串(Character Large Object String),CLOB(n[K|M|G]):CLOB 是变长字符串,最长可以达到2,147,483,647 字节。如果只指定了n,那么n 的值就是最大长度。如果指定了nK,那么最大长度就是n1,024(n 的最大值为2,097,152)。如果指定了nM,那么最大长度就是n1,048,576(n 的最大值为2,048)。如果指定了nG,那么最大长度就是n1,073,741,824(n 的最大值是2)。

CLOB 用于存储基于大单字节字符集(single-byte character set,SBCS)字符的数据或基于混合(多字节字符集(MBCS)和SBCS)字符的数据。图形字符串是表示双字节字符数据的字节序列。图形字符串包括类型为GRAPHIC(n) 的定长图形字符串和类型为VARGRAPHIC(n)、LONG VARGRAPHIC 和DBCLOB(n) 的变长图形字符串。字符串的长度就是序列中双字节字符的数目。

定长图形字符串,GRAPHIC(n):定长图形字符串的长度介于 1 到127 个双字节字符之间。如果没有指定长度,就认为是1 个双字节字符。

变长图形字符串,VARGRAPHIC(n):VARGRAPHIC(n) 类型的字符串是变长图形字符串,最大长度可达16,336 个双字节字符。

LONG VARGRAPHIC:LONG VARGRAPHIC 类型的字符串是变长图形字符串,最大长度可达16,350 个双字节字符。

双字节字符大对象字符串,DBCLOB(n[K|M|G]):双字节字符大对象是变长双字节字符图形字符串,最长可达1,073,741,823 个字符。如果只指定了n,那么n 就是最大长度。如果指定了nK,那么最大长度就是n1,024(n 的最大值为1,048,576)。如果指定了nM,那么最大长度就是n1,048,576(n 的最大值为1,024)。

如果指定了nG,那么最大长度就是n1,073,741,824(n 的最大值是1)。DBCLOB 用于存储基于大DBCS(双字节字符集,double-byte character set)字符的数据。二进制字符串是字节序列。二进制字符串包括BLOB(n) 类型的变长字符串,它用于容纳非传统型的数据,诸如图片、语音或混合媒体等,还可以容纳用户定义的类型及用户定义的函数的结构化数据。二进制大对象,BLOB(n[K|M|G]):二进制大对象是变长字符串,最长可达2,147,483,647 字节。如果只指定了n,那么n 就是最大长度。如果指定了nK,那么最大长度就是n1,024(n 的最大值为2,097,152)。如果指定了nM,那么最大长度就是n1,048,576(n 的最大值

为2,048)。如果指定了nG,那么最大长度就是n1,073,741,824(n 的最大值是2)。

日期时间型DB2数据类型包括DATE、TIME 和TIMESTAMP。日期时间值可在某些算术和字符串操作中使用,而且兼容某些字符串,但它们既不是字符串,也不是数字。

DATE:DATE 是一个由三部分组成的值(年、月和日)。年份部分的范围是从0001 到9999。月份部分的范围是从1 到12。日部分的范围是从 1 到n,其中n 的值取决于月份。DATE 列长10 个字节。

TIME:TIME 是一个由三部分组成的值(小时、分钟和秒)。小时部分的范围是从0 到24。分钟和秒部分的范围都是从0 到59。如果小时为24,分钟和秒的值都是0。TIME 列长8 个字节。

TIMESTAMP:TIMESTAMP 是一个由七部分组成的值(年、月、日、小时、分钟、秒和微秒)。年份部分的范围是从0001 到9999。月份部分的范围是从1 到12。日部分的范围是从1 到n,其中n 的值取决于月份。小时部分的范围是从0 到24。分钟和秒部分的范围都是从0 到59。微秒部分的范围是从000000 到999999。

如果小时是24,那么分钟值、秒的值和微秒的值都是0。TIMESTAMP 列长26 个字节。日期时间值的字符串表示:尽管DATE、TIME 和TIMESTAMP 的值的内部表示对用户是透明的,日期、时间和时间戳记也可以用字符串来表示,CHAR 标量函数(请参阅SQL 的"词类(parts of speech)")可以用于创建日期时间值的字符串表示。

日期值的字符串表示是一个以数字开始,长度不少于8 个字符的字符串。日期值的月份和日部分中前面的零可以省略。

时间值的字符串表示是以数字开头,长度不少于4 个字符的字符串。时间值的小时部分前面的零可以省略,秒部分可以完全省略。如果秒的值没有指定,那么就认为是0。

时间戳记值的字符串表示是以数字开头,长度不少于16 个字符的字符串。完整的时间戳记字符串表示形式为yyyy-mm-dd-hh.mm.ss.nnnnnn。时间戳记值的月、日或小时等几部分前面的零可以省略,微秒可以截断或完全省略。如果任何时间戳记值的微秒部分尾零被省略掉了,那么将假定空缺的数位上是零。

自增长字段设计会超过最大值吗?应该不会DB2数据类型,范围精度10位了!

在表中存储数据时,不同类型的数据占用的空间和存储的方式都不相同。接下来,我们就简单认识一下DB2 中的各种数据类型(Data Type)。

DB2 主要分成两类数据类型:内置的数据类型和用户自定义的数据类型。本节只介绍内置类型,用户自定义类型在3.17.2 节介绍。

内置数据类型主要包括数值型、文本型、日期时间型和XML 四大类。

3.11.1 数值型

数值型具体划分如图3.19 所示。

图3.19 数值型数据的种类

SMALLINT 称为小整型或短整型,是两个字节的整数,精度为 5 位,其数据表示范围从-32,768 到32,767。

INT 称为整型,也可以写成INTEGER,是四个字节的整数,精度为10 位,其数据表示范围从-2,147,483,648 到2,147,483,647。

BIGINT 称为大整型或长整型,是八个字节的整数,精度为19 位,其数据表示范围从

9,223,372,036,854,775,808 到9,223,372,036,854,775,807。

REAL 称为单精度浮点数,是实数的32 位近似值。数字可以为零,或者在从-3.402E+38 到-1.175E-37 或从1.175E-37 到3.402E+38 的范围内。

DOUBLE 称为双精度浮点数,是实数的64 位近似值。数字可以为零,或者在从-1.79769E+308 到-2.225E-307 或从2.225E-307 到1.79769E+308 的范围内。DECFLOAT 称为十进制浮点数,是V9.5 中引入的新数据类型,适合于处理准确的十进制业务。它具有DECIMAL 类型的准确性,同时又具有浮点数的性能优势,特别适合于在处理货币值相关的应用程序中使用。

DECIMAL 称为十进制数,是一种可以自己定义小数位数的压缩型十进制数,也可以写成DEC,NUMERIC 或者NUM,定义这种类型的数据需要指定两个参数:DECIMAL(p,s)。p 表示数字的总长度(不包括正负号和小数点),s 表示小数长度。

DECIMAL 类型的数据可以精确地表示指定精度的小数。它所占用的存储空间与第一个参数,即数字的总长度有关,计算公式为:tranc(p/2)+1。其中tranc 表示截取整数部分。

3.11.2 字符型

字符型具体划分如3.20 所示。

图3.20 字符型数据的种类

CHAR 称为定长字符串,需要指定长度,如CHAR(10)。也可以写成CHARACTER( 长度)。定长字符串的长度介于1 到254 字节之间。如果没有指定长度,那么就认为是1 个字节。VARCHAR 称为变长字符串,需要指定最大长度,如VARCHAR(20)。变长字符串长度的最大值是32672。存储变长字符串时,需要额外花费4 个字节来记录字符串的实际长度。所以,如果指定了VARCHAR(20),每个这种类型的数据在硬盘上实际要占用20+4=24 个字节的空间。

需要注意的是,对于变长字符串的实际占用存储空间量还有一个限制:数据必须适合放在单个表空间页面上。也就是说,对于使用4K 页表空间的表,长度不能超过4 ×1024-4=4092 字节;对于8K 页表空间的表,长度不能超过8 ×1024-4=8188 字节;对于16K 页表空间的表,长度不能超过16 ×1024-4=16380 字节;对于32K 页表空间的表,长度不能超过32 ×1024-4=32764 字节,但是该数超过了VARCHAR 的最大长度32672,所以对于32K 页表空间的表,最大能够存放32672 字节。默认情况下表空间为4K,所以要使用VARCHAR 类型来存储超过4092 字节的数据,就需要显式创建更大页大小的表空间。LONG VARCHAR 称为大型变长字符串,不需要指定最大长度,其最大可以存储32700 个字节。与VARCHAR 类型不同的是,该数据类型不受表空间页大小的限制,对于4K 页表空间的表,长度可以超过4092 字节,只要不超过32700 字节即可。实际在硬盘上占用的存储空间为( 字符串长度+24),24 个字节用于记录与该数值相关的信息。

CLOB 称为大对象字符串,需要指定长度,CLOB(n [K|M|G]),长度可以是字节,也可以是K,M 或G 等某一种单位,每个CLOB 最大可以存储2G 字节的数据。CLOB 数据并不是直接存放在表中,而是单独存放在一个表空间中,表中存放的是一个指针,指向对应的实际数据。GRAPHIC,VARGRAPHIC,LONG GRAPHIC 和DBCLOB 分别与前面的CHAR,VARCHAR,LONG VARCHR 和CLOB 对应,只是都存储双字节字符,存储的长度都减小一半。

BLOB 称为二进制大对象,也需要指定长度,BLOB(n [K|M|G]),长度可以是字节,也可以是K,M 或G 等某一种单位,每个BLOB 最大可以存储2G 字节的二进制数据。与CLOB 一样,表中存放的也是指针,指向实际的数据。BLOB 适合于存放图片、音频、视频的容量非常大的内容,DB2 本身不考虑存放的内容是什么,只是按照二进制的方式将数据存放起来,

使用的时候还需要配合相应的函数,对不同内容的数据进行不同的处理。

3.11.3 日期时间型

日期时间型包括DATE,TIME 和TIMESTAMP 三种。

DATE 称为日期型,能够表示的年份范围从公元1 年到9999 年中的任何一天,日期型数据显示出来是固定长度的10 位字符串,在硬盘上存储需要占用4 个字节,采用的是压缩字符串形式进行存储。

TIME 称为时间型,能够表示一天当中的时、分、秒,显示出来是固定长度的8 位字符串,在硬盘上存储需要占用3 个字节,采用的也是压缩字符串形式进行存储。

TIMESTAMP 称为时间戳型,能够表示年、月、日、时、分、秒,并且能够精确到微秒级别(具体能够精确到的位数还与计算机的硬件和操作系统有关)。

3.11.4 XML 类型

XML 是从DB2 V9 开始引入的新的数据类型,能够直接把XML 数据作为内容存储到表中,与以往把XML 作为大对象存储不同的是,从V9 开始,提供了XQuery(类似于关系数据库中SQL 的一种专门针对XML 的查询语言)直接对XML 这种层次型的数据进行各种操作,关于XQuery 的简单介绍,请参见第4 章。关于XQuery 更详细的介绍,可以阅读本丛书的第二本《DB2 深度解析--高级DBA 和开发者篇》。

在9.1 版本中,XML 数据是与表中数据分开存放的,XML 数据单独存放在一个表空间中,而从9.5 版本开始,长度比较短的XML 数据直接存放在表中,长度很长的XML 数据单独存放在另外的表空间中,这样有利于提高查询效率。

3.11.5 空值

在关系数据库中还存在一种特殊的类型:空值,用Null 表示。如果一个值被设置为空值,表示该值不存在。空值可以放在任意的数据类型中来表示不存在。需要注意的是,空值不能参与任何的算术运算和逻辑运算。

DB2开发基础

DB2开发基础 在进行DB2应用开发之前,了解DB2应用程序的结构,掌握相关概念,设置开发环境是很必要的。本章主要介绍这几个方面的内容。 1.1 DB2应用程序开发概述 1.1.1 程序结构 DB2应用程序包括以下几个部分: 1. 声明和初始化变量 2. 连接到数据库 3. 执行一个或者多个事务 4. 与数据库断开连接 5.结束程序 一个事务是一组数据库操作,在提交给数据库之前,必须确认完全成功执行。在嵌入式SQL应用程序中,当应用程序成功地连接到一个数据库时,一个事务就自动开始了,结束于执行一条COMMIT语句或者ROLLBACK语句。同时,下一条SQL语句开始一个新的事务。 每一个应用程序的开始必须包括: ● 数据库管理器用来与宿主程序交互的所有变量和数据结构的声明 ● 设置SQL通信区(SQLCA),提供错误处理的SQL语句

注意:用JAVA写的DB2应用程序在SQL语句出错时抛出一个SQLException 异常,需要在catch块里处理,而不是使用SQLCA。 每个应用程序的主体包括访问和管理数据的SQL语句。这些语句组成事务,事务必须包括下列语句: ● CONNECT语句,其建立一个与数据库服务器的连接 ● 一条或多条: ▲数据操纵语句(例如,SELECT语句) ▲数据定义语句(例如,CREATE语句) ▲数据控制语句(例如,GRANT语句) ● COMMIT或者ROLLBACK语句结束事务 应用程序的结束通常包括释放程序与数据库服务器的连接和释放其他资源的SQL语句。 1.1.2 开发方法选择 可使用几种不同的程序设计接口来存取 DB2 数据库。您可以: ● 将静态和动态 SQL 语句嵌入应用程序。 ● 在应用程序中编写“DB2 调用层接口”(DB2 CLI) 的函数调用,以调用动态 SQL 语句。 ● 开发调用“Java 数据库链接”应用程序设计接口 (JDBC API) 的 Java 应用程序和小程序。

DB2存储过程快速入门.

1.1 SQL过程的结构 命名规则: 1、清洗过程名称命名: PROC_业务主题_目标表(PROC_JY_KJYRLJB 交易主题的卡交易日类聚表) 2、函数名称命名: PROC_业务主题_函数名(PROC_JY_GETYWZL 交易主题取得卡业务种类函数) 3、变量命名: VAR_变量描述(VAR_YWZL 业务种类变量) 4、游标命名: CUR_游标描述(CUR_KJYB 对卡交易表进行游标处理) 语法: CREATE PROCEDURE 过程名称 (参数列表 DYNAMIC RESULT SETS 结果集数量 是否允许SQL LANGUAGE SQL BEGIN SQL 过程体

END 范例“资产负债.sql ”中 第1行:Create Procedure admin.BalanceSheetDayly定义了过程名称 参数列表为Out ProcState varchar(100 其定义SQL 过程从客户应用获取,或返回客户应用的0个或多个参数,参数列表使用逗号侵害各个参数 参数类型有三种: l IN 从客户应用检索值。其不能够在SQL 过程体中修改 l OUT 向客户应用返回值 l INOUT 从客户应用检索值,并返回值 省略了结果集数量的定义,default 为0。即表示不返回结果集。 省略了是否允许SQL 的说明。其值指出了存储过程是否会使用SQL 语句,如果使用,其类型如何: l NO SQL 不能够执行任何SQL 语句 l COTAINS SQL 可以执行不会读取SQL 数据,也不会修改SQL 数据的SQL 语句 l READS SQL DATA 可以包含不会修改SQL 数据的SQL 语句 l MODIFIES SQL DATA 可以执行任何SQL 语句,除了不能够在存储过程中支持的语句以外。

DB2存储过程--基础详解

DB2存储过程-基础详解 2010-12-20 来源:网络 简介 DB2 SQL Procedural Language(SQL PL)是SQL Persistent Stored Module 语言标准的一个子集。该标准结合了SQL 访问数据的方便性和编程语言的流控制。通过SQL PL 当前的语句集合和语言特性,可以用SQL 开发综合的、高级的程序,例如函数、存储过程和触发器。这样便可以将业务逻辑封装到易于维护的数据库对象中,从而提高数据库应用程序的性能。 SQL PL 支持本地和全局变量,包括声明和赋值,还支持条件语句和迭代语句、控制语句的转移、错误管理语句以及返回结果集的方法。这些话题将在本教程中讨论。 变量声明 SQL 过程允许使用本地变量赋予和获取SQL 值,以支持所有SQL 逻辑。在SQL 过程中,在代码中使用本地变量之前要先进行声明。 清单 1 中的图演示了变量声明的语法: 清单 1. 变量声明的语法 .-,-----------------. V | |--DECLARE----SQL-variable-name-+-------------------------------> .-DEFAULT NULL------. >--+-data-type--+-------------------+-+-------------------------| | '-DEFAULT--constant-' | SQL-variable-name 定义本地变量的名称。该名称不能与其他变量或参数名称相同,也不能与列名相同。 图 1 显示了受支持的DB2 数据类型:

DB2数据库基础入门

IBM DB2数据库基础 基本命令集合 1. 建立数据库DB2_GCB CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 2. 连接数据库 connect to sample1 user db2admin using 8301206 3. 建立别名 create alias db2admin.tables for sysstat.tables; CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS create alias db2admin.columns for syscat.columns; create alias guest.columns for syscat.columns; 4. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only; 5. 插入记录 insert into zjt_tables select * from tables; insert into zjt_views select * from views;

6. 建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables; 7. 建立触发器 CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 8. 建立唯一性索引 CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); 9. 查看表 select tabname from tables where tabname='ZJT_TABLES'; 10. 查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度 from columns where tabname='ZJT_TABLES'; 11. 查看表结构 db2 describe table user1.department db2 describe select * from user.tables

DB2存储过程学习总结

Db2 存储过程学习总结 ●在命令窗口执行存储过程,可以方便看出存储过程在哪一行出现错误,方便修改。 ●db2 存储过程常用语句格式 ----定义 DECLARE CC VARCHAR(4000); DECLARE SQLSTR VARCHAR(4000); DECLARE st STATEMENT; DECLARE CUR CURSOR WITH RETURN TO CLIENT FOR CC; ----执行动态SQL不返回 PREPARE st FROM SQLSTR; EXECUTE st; ----执行动态SQL返回 PREPARE CC FROM SQLSTR; OPEN CUR; ----判断是否为空,使用值替代 COALESCE(判断对象,替代值)

----定义临时表 DECLARE GLOBAL TEMPORARY TABLE SESSION.TempResultTable ( Organization int, OrganizationName varchar(100), AnimalTypeName varchar(20), ProcessType int, OperatorName varchar(100), OperateCount int ) WITH REPLACE -- 如果存在此临时表,则替换 NOT LOGGED; DB2 9.x临时表使用总结 1). DB2的临时表需要用命令Declare Temporary Table来创建,并且需要创建在用户临时表空间上; 2). DB2在数据库创建时,缺省并不创建用户临时表空间,如果需要使用临时表,则需要用户在创建临时表之前创建用户临时表空间; 3). 临时表的模式为SESSION,SESSION即基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现 .; 4). 缺省情况下,在Commit命令执行时,DB2临时表中的所有记录将被删除; 这可以通过创建临时表时指定不同的参数来控制; 5). 运行ROLLBACK命令时,用户临时表将被删除; 下面是DB2临时表定义的一个示例: DECLARE GLOBAL TEMPORARY TABLE results ( RECID VARCHAR(32) , --id XXLY VARCHAR(100), --信息来源 LXDH VARCHAR(32 ), --信息来源联系电话 FKRQ DATE --反馈时间 ) ON COMMIT PRESERVE ROWS WITH REPLACE NOT LOGGED; ----字符串函数

DB2存储过程简单例子

DB2存储过程简单例子 客户在进行短信服务这个业务申请时,需要填写一些基本信息,然后根据这些信息判断这个用户是否已经存在于业务系统中。因为网上服务和业务系统两个项目物理隔离,而且网上数据库保存的客户信息不全,所以判断需要把数据交换到业务系统,在业务系统中判断。 解决方式是通过存储过程,以前也了解过存储过程,但没使用到项目中。不过经过一番努力最后还是完成了,期间遇到了一些困难,特写此文让对DB2存储过程还不熟悉的童鞋避免一些无谓的错误。 DROP PROCEDURE "PLName" @ CREATE PROCEDURE "PLName"(--存储过程名字 IN IN_ID BIGINT , --以下全是输入参数 IN IN_ENTNAME VARCHAR(200) , IN IN_REGNO VARCHAR(50), IN IN_PASSWORD VARCHAR(20), IN IN_LEREP VARCHAR(300), IN IN_CERTYPE CHARACTER(1), IN IN_CERNO VARCHAR(50), IN IN_LINKMAN VARCHAR(50), IN IN_SEX CHARACTER(1), IN IN_MOBTEL VARCHAR(30), IN IN_REQDATE TIMESTAMP, IN IN_REMITEM VARCHAR(300), IN IN_STATE CHARACTER(1), IN IN_TIMESTAMP TIMESTAMP ) BEGIN declare V_RESULT BIGINT; --声明变量 DELETE FROM TableNameA WHERE ID = IN_ID;

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

DB2 存储过程开发最佳实践

DB2 存储过程开发最佳实践 COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数,只有当传入COALESCE函数的所有的参数都是NULL的时候,函数才会返回NULL。例如, COALESCE(piName,''),如果变量piName为NULL,那么函数会返回'',否则就会返回piName本身的值。 下面的例子展示了如何对参数进行检查何初始化。 Person表用来存储个人的基本信息,其定义如下: 表1: Person 下面是用于向表Person插入数据的存储过程的参数预处理部分代码:

表Person中num、name和age都是非空字段。对于name字段,多个空格我们也认为是空值,所以在进行判断前我们调用RTRIM和COALESCE对其进行处理,然后使用 piName = '',对其进行非空判断;对于Rank 字段,我们希望如果用户输入的NULL,我们把它设置成"0",对其我们也使用COALESCE进行初始化;对于"Age"和"Num" 我们直接使用 IS NULL进行非空判断就可以了。 如果输入参数没有通过非空判断,我们就对输出参数poGenStatus设置一个确定的值(例子中为 34100)告知调用者:输入参数错误。 下面是对参数初始化规则的一个总结,供大家参考: 1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成''; 2. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0; 3. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,'')把NULL转换成'',然后判断函数返回值是否为''; 4. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。 最佳实践 3:正确设定游标的返回类型 前面我们已经讨论了如何声明存储过程的返回结果集。这里我们讨论一下结果集返回类型的问题。结果集的返回类型有两种:调用者(CALLER) 和客户应用(CLIENT)。首先我们看一下声明这两种游标的例子:

Db2基本数据类型

DB2的基本数据类型 字段类型 描述 字段长度及其缺省值 Char(size) 用于保存定长(size)字节的字符串数据。 每行定长(不足部分补为空格);最大长度为254字节,缺省值为每行1字节。Varchar(size) 用于保存变长的字符串数据。其中最大字节长度由(size)指定。 每行长度可变,最大长度为4000字节。数据长度缺省为1 Long Varchar 用于保存变长的字符串数据。 每行长度可变,最大长度为4321700字节。 Graphic(size) 双字节字符串。 每行定长(不足部分补为空格)。最大长度为127字节。 Vargraphic(size) 可变长,双字节字符串。 每行变长。最大长度为127字节。 Long Vargraphic 双字节字符串。 最大长度为16350双字节字符串。 Timestamp 用于改变管理的二进制值数据,包括年月日时分秒毫秒。 字节数为26 Date 保存定长的日期数据,范围为0000年到9999。 每行固定为10字节长度。 Time 保存定长的时间数据。 每行固定为8字节长度。 Integer 保存整型数据,范围为-2147483648到+2147483647。 最大长度为4字节32 - 1字节或4G。 Smallint 保存整型数据,范围为-32768到+32767 最大长度为2字节32 - 1字节或4G。 Bigint 保存整型数据,范围为-9223372036854775808到+9223372036854775807

最大长度为2字节64 - 1字节。 Real 保存单精度浮点数据类型 最大长度为4字节。指数表示。 Double 保存双精度浮点数据类型,范围为-2.23E-308到+2.23E-308。 最大长度为8字节。指数表示。 Float 保存浮点数据类型,范围为-2.23E-308到+2.23E-308。 最大长度为8字节。指数表示。 Numeric(p,s) 保存精确数值数据类型,范围为-10E-38到+10E-38,p是精度,总小数位数(1~38),s是小数位(小数位小于等于p) 最大长度为2~17字节。 Decimal(p,s) 保存精确数值数据类型,范围为-10E-38到+10E-38,p是精度,总小数位数(1~38),s是小数位(小数位小于等于p) 最大长度为2~17字节。 Clob 保存2GB长度以内的单字节文本数据 最大长度为2G。 DbClob 保存1GB长度以内的双字节文本数据。 最大长度为1G字符。 Blob 保存2GB长度以内的二进制数据。 最大长度为2G。支持Not Logged选项和Compact选项 我们今天主要向大家讲述的是DB2数据类型,我们大家都知道DB2内置数据类型其一共可以分成数值型(numeric)、字符串型(character string)、图形字符串(graphic string)、二进制字符串型(binary string)或日期时间型(datetime)。 还有一种叫做DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。 数值型DB2数据类型包括SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号为正。 小整型,SMALLINT:小整型是两个字节的整数,精度为5 位。小整型的范围从-32,768 到32,767。 大整型,INTEGER 或INT:大整型是四个字节的整数,精度为10 位。大整型的范围从-2,147,483,648 到2,147,483,647。 巨整型,BIGINT:巨整型是八个字节的整数,精度为19 位。巨整型的范围从-9,223,372,036,854,775,808 到9,223,372,036,854,775,807。 小数型,DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或NUM(p,s):小数型的值是一种压缩十进

DB2基础教程文档

1.1 DB2 UDB的版本 DB2针对于不同的用户需求,提供了多种版本: ● 企业服务器版(Enterprise Server Edition) 该版本通常用于支持大规模的企业级应用程序以及大型企业级数据仓库,它提供了最大程度的连接性,并且可以与异构平台上的DB2数据库和第三方厂商的数据库产品共享数据资源。 ●工作组服务器版(Workgroup Server Edition) 该版本通常用于支持部门级应用程序或者支持那些不需要存取驻留在OS/400、VM/VSE和OS/390平台上的远程数据库的应用程序。 ●个人版(Personal Edition) 该版本通常被单机用户使用,功能完备但不能响应远程的数据库请求。该版本只能运行在Linux和Windows 操作系统上。 ● Everyplace 该版本是专门为移动计算环境设计的,允许移动用户通过个人数字助理(PDA)和掌上电脑等手持设备存取企业中的DB2数据源。DB2 Everyplace可以执行在包括Palm OS、Linux、Windows CE、Neutrino、PocketPC 和Symbian在内的多种操作系统上。 注:DB2 企业服务器版是以前的DB2 UDB企业版(DB2 UDB Enterprise Edition)和DB2 UDB企业扩展版(DB2 UDB Enterprise-Extended Edition)的合并。以前的DB2卫星版已经被合并到新发行的DB2个人版当中。 1.2 DB2的连接性 DB2提供了很多种方法可以连接到DB2数据库和非DB2数据库。 ● DB2客户端 在要存取DB2数据库的远程用户的工作站上必须安装DB2客户端组件。 ● DB2 Connect 对于UNIX和Intel平台上的数据库应用程序,如果需要存取OS/400、VM/VSE和OS/390系统上的DB2数据库,则需要DB2 Connect的支持。 注意:任何平台上的数据库应用程序对UNIX和Intel平台上的数据库进行存取,都不需要DB2 Connect的支持。 ● DB2 Relational Connect DB2 Relational Connect允许DB2客户端在DB2数据库和异构数据库(如Oracle)之间进行存取和表的连接(Join)操作。 1.2.1 DB2客户端 针对不同的应用需求,DB2客户端产品有:

DB2存储过程语法

DB2存储过程语法 语法: CREATE PROCEDURE . (参数) [属性] <语句> --参数:SQL PL 存储过程中有三种类型的参数: IN:输入参数(默认值,也可以不指定) OUT:输出参数 INOUT:输入和输出参数 --属性 1、LANGUAGE SQL 指定存储过程使用的语言。LANGUAGE SQL 是其默认值。还有其它的语言供选择,比如Java 或者C,可以将这一属性值分别设置为LANGUAGE JAVA 或者LANGUAGE C。 2、DYNAMIC RESULT SETS 如果您的存储过程将返回n 个结果集,那么需要填写这一选项。 3、SPECIFIC my_unique_name 赋给存储过程一个唯一名称,如果不指定,系统将生成一个惟一的名称。一个存储过程是可以被重载的,也就是说许多个不同的存储过程可以使用同一个名字,但这些存储过程所包含的参数数量不同。通过使用SPECIFIC 关键字,您可以给每一个存储过程起一个唯一的名字,这可以使得我们对于存储过程的管理更加容易。例如,要使用SPECIFIC 关键字来删除一个存储过程,您可以运行这样的命令:DROP SPECIFIC PROCEDURE。如果没有使用SPECIFIC 这个关键字,您将不得不使用DROP PROCEDURE 命令,并且指明存储过程的名字及其参数,这样DB2 才能知道哪个被重载的存储过程是您想删除的。 4、SQL 访问级别 NO SQL:存储过程中不能有SQL 语句 CONTAINS SQL:存储过程中不能有可以修改或读数据的SQL 语句 READS SQL:存储过程中不能有可以修改数据的SQL 语句 MODIFIES SQL:存储过程中的SQL 语句既可以修改数据,也可以读数据 默认值是MODIFIES SQL,一个存储过程不能调用具有更高SQL 数据访问级别的其他存储过程。例如,被定义为CONTAINS SQL 的存储过程可以调用被定义为CONTAINS SQL 或NO SQL 的存储过程。但是这个存储过程不能调用被定义为READS SQL DATA 或MODIFIES SQL 的其他存储过程。 --语句 可以是一条单独的语句或者是一组由BEGIN [ATOMIC] ... END 复合语句 DB2数据库动态SQL应用 今天写了一个db2的存储过程,分享一下:

DB2存储过程编写规范

DB2存储过程编写规范 版本号:1.0 修订记录:

目录 第一章.前言 (3) 一.编写目的 (3) 二.编写背景 (4) 三.适用范围 (4) 第二章.程序结构 (5) 一.整体结构 (5) 二.程序说明 (6) 三.变量定义 (7) 四.异常错误处理 (7) 五.程序正文 (9) 第三章.命名规范 (10) 一.存储过程命名 (10) 二.参数命名 (10) 三.变量命名 (11) 四.临时表命名 (11) 第四章.书写格式 (12) 一.表达范式 (12) 二.段落缩进 (12) 三.段落间隔 (12) 四.程序注释 (13) 第五章.注意事项 (13)

一.固定的输出参数 (13) 二.临时表的使用 (14) 三.数据的插入 (14) 四.where 条件 (14) 五.count 的使用 (15) 六.全表删除 (15) 七.MERGE(UPSERT)的使用 (15) 第六章.附录A (15) 第一章.前言 一.编写目的 为了提高开发效率和程序的可读性,降低程序编写过程的出错率和重复劳动性,保持程序编写风格的一致性和连贯性,特定此规范。

二.编写背景 目前数据库工具有很多种,考虑到数据仓库开发的实用性,数据仓库开发工具选择了DB2。 三.适用范围 本规范适用于招商银行信息技术部开发人员以及运行管理人员,从事DB2存储过程开发的相关技术人必须按照此规范编写存储过程。

第二章.程序结构 一.整体结构 创建DB2存储过程必须按如下标准格式书写: DROP PROCEDURE 模式名.过程名@ CREATE PROCEDURE 模式名.过程名 ( IN|OUT 输入|输出变量名输入|输出变量类型 [ , ... ] ) SPECIFIC模式名.过程名 LANGUAGE SQL /* 程序说明*/ BEGIN <程序体> END@ 其中: 1)模式名是用来指定该存储过程属于哪个模式下的,默认为编译该过程的登录用户名,但为了过程的统一管理以及各系统间的相互区分,必须要指定一个模式名,模式名由过程所属项目设计中统一制

经典:深入了解IBM DB2的通信与连接过程

教你深入了解IBM DB2的通信与连接过程 本文详细描述了DB2? Universal Database?(DB2 UDB)代理的工作原理以及连接集中器的特性,并对DB2 连接上常见的问题及代理的优化作了详细的分析。希望通过本文让用户能够了解DB2 的连接机制和客户端与服务器端的交互作用,可以解决在实际的商业环境中遇到的性能问题。 简介 DB2 的代理(agent) 是位于DB2 服务器中的服务于应用程序请求的一些进程或线程。当有外部应用程序连接至DB2 实例提出访问请求时,DB2 的代理就会被激活去应答这些请求。一般DB2 的代理被称为工作代理,工作代理大概有三种类型:空闲代理、活动的协调代理、子代理。 ◆空闲代理:指的是没有任何任务的代理。这种代理不服务于任何远程连接也不服务于本地连接,处于一种备用或待命状态。 ◆活动的协调代理:指的是处于工作状态的代理,每一个外部应用程序产生的数据库活动连接的都有一个活动协调代理来为它服务。 ◆子代理:指的是接受协调代理分发出来的工作的下一级代理。在DB2 V95 以前,只有在多分区环境(MPP) 或节点内并行环境(SMP) 下才存在子代理,在DB2 V95 中所有环境中都可能存在子代理。 在DB2 服务器中有一个代理池,当实例刚启动后这里便有一些代理(其数量取决于实例参数NUM_INITAGENTS)。在没有任何数据库连接时,它们处于待命状态,就是空闲代理。而当有外部程序连接至数据库时,这些代理开始得到命令去服务于这些新建的连接,这时它们就变成了活动的协调代理。这些协调代理再将请求逐步细分,分配给下一级代理即子代理去处理。如果当前的代理都已经在工作了,同时又来了新的请求,数据库管理器会产生一个新的代理去应答。当事务处理完毕而且数据库连接断开后,协调代理要么返回代理池变回空闲代理,要么就自动消失了(取决于实例参数NUM_POOLAGENTS)。这就是一个代理的生命周期。 相关的配置参数 通过执行DB2 get dbm cfg 可以看到以下几个和代理相关的实例参数:MAXAGENTS,NUM_POOLAGENTS,NUM_INITAGENTS,MAX_COORDAGENTS,MAX_CONNECTIONS,MAXCAGENTS。下面对它们做一下简要介绍: ◆MAXAGENTS:这个参数为当前实例中全部代理的数量,包括协调代理,空闲代理和子代理之和。不过这个参数在DB2 V95 中已经不再使用了。 ◆NUM_POOLAGENTS:这个参数用来控制代理池中的空闲代理的数量。当活动的代理完成工作返回代理池变成空闲代理时,如果数量超过了这个参数,那么这个代理就会自动消失了。注意:在连接集中器激活的情况下,代理池中的空闲代理数目在某一时刻可能会超过NUM_POOLAGENTS 的大小,以应对突发的高密度连接。 ◆NUM_INITAGENTS:这个参数就是前面提到的在实例刚刚启动时便生成的一些空闲

DB2数据库基础

1、查看版本相关信息 db2ls db21s -q -b /opt/ibm/db2/V9.7 #可查看安装组件相关信息2、在linux平台下创建实例 db2icrt 的用法: -p:指定实例端口号 -s:指定实例类型 -u:指定fenced user groupadd -g 1100 db2iadm1 #创建实例管理组 groupadd -g 1101 db2fadm1 #创建fenced组 useradd -g db2iadm1 -u 1100 -m -d /home/db2inst1 db2inst1 # 创建实例用户 useradd -g db2fadm1 -u 1101 -m -d /home/db2fenc1 db2fenc1 # 创建fence用户 切换至root目录 cd /opt/ibm/db2/V9.7/instance ./db2icrt -p 50000 -u db2fenc1 db2inst1 #创建实例

3、数据库参数配置 A. 配置实例: 查询:db2 get dbm cfg 设置:db2 update dbm cfg using B. 配置数据库: 查询:db2 get db cfg for 设置:db2 update db cfg for using 应用实例: db2 update db cfg for simudb using LOGPRIMARY 80 恢复默认设置:db2 reset db cfg 4、实例的基本操作 db2ilist #显示版本下面有哪些实例db2greg -dump #显示服务器上面有哪些实例db2 get instance #显示当前实例 5、数据库实例的开启 su - db2inst1

db2快速入门指南

安装DB2企业版数据库 1. Windows环境 更改安装路径为d:\IBM\SQLLIB 默认端口50000,可以更改 安装时需要建db2admin用户,权限为系统管理员,为了安全一定要有密码 DB2安装目录结构 \SQLLIB安装的根目录,包括README文件 \SQLLIB\ADSM包含ADSTAR分布式存储管理器文件 \SQLLIB\BIN包含DB2工具的可执行文件 \SQLLIB\BND包含DB2工具的绑定文件 \SQLLIB\CC包含运行控制中心所需的文件 \SQLLIB\CFG包含默认的系统配置文件 \SQLLIB\CONV包含代码页转换表文件 \SQLLIB\DB2默认的实例目录 \SQLLIB\DB2DAS00缺省的DB2管理服务器目录 \SQLLIB\DOC包含DB2联机手册 \SQLLIB\FUNCTION默认的用户自定义函数目录 \SQLLIB\FUNCTION\UNFENCED默认的非隔离用户自定义函授目录 \SQLLIB\HELP联机帮助文件 \SQLLIB\JA VADB2所需的JA VA类库 JA V A12包含JDK1.2的支持程序 \SQLLIB\MISC包含HTML搜索服务器文件 \SQLLIB\MSG\PRIME包含信息文件 \SQLLIB\QP包含QUERYPA TROLLER的客户端文件 \SQLLIB\SAMPLES包含样例程序和样例脚本 \SQLLIB\SPMLOG包含DB2同步点管理器日志文件 \SQLLIB\THNSETUP包含瘦客户端安装文件 2. Unix环境 安装比较麻烦,AIX简单内核参数调整少,其他调整比较多。 db2文档有说明。 DB2安装目录结构 README安装的根目录,包括README文件 ADM包含系统管理工具文件

db2编程使用技巧

db2编程使用技巧一(转帖) 1 DB2编程 1.1 建存储过程时CREATE 后一定不要用TAB键3 1.2 使用临时表3 1.3 从数据表中取指定前几条记录3 1.4 游标的使用4 注意commit和rollback 4 游标的两种定义方式4 修改游标的当前记录的方法5 1.5 类似DECODE的转码操作5 1.6 类似CHARINDEX查找字符在字串中的位置5 1.7 类似DATEDIF计算两个日期的相差天数5 1.8 写UDF的例子5 1.9 创建含IDENTITY值(即自动生成的ID)的表6 1.10 预防字段空值的处理6 1.11 取得处理的记录数6 1.12 从存储过程返回结果集(游标)的用法6 1.13 类型转换函数8 1.14 存储过程的互相调用8 1.15 C存储过程参数注意8 1.16 存储过程FENCE及UNFENCE 8 1.17 SP错误处理用法9 1.18 IMPORT用法9 1.19 VALUES的使用9 1.20 给SELECT 语句指定隔离级别10 1.21 ATOMIC及NOT ATOMIC区别10 2 DB2编程性能注意10 2.1 大数据的导表10 2.2 SQL语句尽量写复杂SQL 10 2.3 SQL SP及C SP的选择10 2.4 查询的优化(HASH及RR_TO_RS) 11 2.5 避免使用COUNT(*) 及EXISTS的方法11 3 DB2表及SP管理12 3.1 看存储过程文本12 3.2 看表结构12 3.3 查看各表对SP的影响(被哪些SP使用) 12 3.4 查看SP使用了哪些表12 3.5 查看FUNCTION被哪些SP使用12 3.6 修改表结构12 4 DB2系统管理13 4.1 DB2安装13

DB2在Win7下安装及建库流程

DB2在Win7下安装及建库流程 安装流程 安装步骤 db2exc_972_WIN_x86.exe文件,双击运行即可。安装时它会把安装文件解压到系统临时文件夹,然后再运行,其实这就是一个压缩包,可以用360解压工具解压出来,除了一张图片无法解压外其他正常,以后安装时直接从解压出来的文件运行,可以省点时间,建议解压。双击setup.exe进入安装启动板,选择安装新产品 初始界面如下 下一步,接受许可

的,所以这里直接下一步 响应文件,这是用来自动安装的。有时,你需要将DB2 客户端安装到多台机器上,又或者需要将DB2 数据库服务器嵌入到应用程序,并在安装这个应用程序同时安装DB2 数据库服务器。这些情况下,DB2 的自动安装是一个理想的方法。DB2 利用响应文件来进行自动安 装,响应文件是一个文本文件,它保存了安装所需的信息。这里直接下一步

选择安装文件夹 用户帐户配置,新手只用填入密码和确认密码,其他不变,下一步。对于了解的人,可以输入一个存在的用户,这个用户将会使用DB2 的实例和其它服务。这个用户必须是windows 中本地管理员(Local Administrator)组的一员,且密码是登陆操作系统时用的密码。如果您输入的用户ID 不存在,这个用户ID 就会被创建,并成为一个本地管理员,即新建一个系统管理员。如果用户不属于任何的一个域,请将域(domain)留空。Windows 中,默认创建 的用户名是db2admin。这里,我选择使用当前登陆的系统用户帐户(最好是管理员大叔)

配置实例,可以做一些相应的配置,例如,是否开机启动服务、端口号(默认端口可能会是:50000,50001,50002),这里直接下一步。 点击完成开始安装

db2迁移方案

db2是个有着广泛商业应用的关系数据库软件。作为一个数据库管理员时常面临着数据库系统的迁移工作,这是一个复杂而艰巨的过程。互联网和db2 的帮助文档中有许多关于db2 数据库迁移的介绍,但是对于db2 数据库的跨平台迁移却很少谈及。本文将基于笔者的成功实践,总结一下跨平台数据库迁移的步骤和注意事项。 简介 设想您是一个db2 商业数据库系统的管理员。您被给予一项任务,支持业务开发和测试团队对商业系统的持续开发,为他们创建一套独立于产品环境的数据库系统,从而不影响日常的商业运作。由于种种原因,这套开发和测试数据库系统将运行在一个不同于产品环境的操作系统。我们知道db2 提供了一些方便的数据库管理工具,比如数据库的整体备份和恢复功能,用户可以用它很方便的将一个db2 数据库从一台物理节点迁移到另一个物理节点,但是db2 的备份和恢复功能目前只支持同构操作系统平台间的迁移,比如从windows 平台到windows 平台,AIX 平台到AIX 平台。对于上述任务要求的跨平台的数据库迁移,就没有一个专门的工具可以很方便的实现。 迁移步骤 经过笔者的实践,总结db2 数据库的跨平台迁移步骤如下: 记录源数据库管理系统配置参数,以备迁移过后数据库系统性能调优; 检查源数据库系统对象,明确要迁移哪些数据库系统对象; 导出源数据库系统的数据集; 生成源数据库系统的数据对象定义语句; 在目标平台创建新的数据库,参照源系统进行设置; 导入源数据集; 检查数据集导入过程日志,排除可能的错误; 执行数据对象定义语句; 检查数据对象语句执行日志,排除可能的错误; 检查更新存储过程的定义; 连接应用系统,测试数据库迁移是否成功。 下面给出一个遵循上述步骤的具体例子,其中将给出执行这些步骤的具体db2 命令以供参考。 1. 记录源数据库管理系统配置参数。这些是很重要的数据环境设置,其中的一些设置关系到迁移能否成功。

db2迁移方案

db2 是个有着广泛商业应用的关系数据库软件。作为一个数据库管理员时常面临着数据库系统的迁移工作,这是一个复杂而艰巨的过程。互联网和db2 的帮助文档中有许多关于db2 数据库迁移的介绍,但是对于db2 数据库的跨平台迁移却很少谈及。本文将基于笔者的成功实践,总结一下跨平台数据库迁移的步骤和注意事项。 简介 设想您是一个db2 商业数据库系统的管理员。您被给予一项任务,支持业务开发和测试团队对商业系统的持续开发,为他们创建一套独立于产品环境的数据库系统,从而不影响日常的商业运作。由于种种原因,这套开发和测试数据库系统将运行在一个不同于产品环境的操作系统。我们知道db2 提供了一些方便的数据库管理工具,比如数据库的整体备份和恢复功能,用户可以用它很方便的将一个db2 数据库从一台物理节点迁移到另一个物理节点,但是db2 的备份和恢复功能目前只支持同构操作系统平台间的迁移,比如从windows 平台到windows 平台,AIX 平台到AIX 平台。对于上述任务要求的跨平台的数据库迁移,就没有一个专门的工具可以很方便的实现。 迁移步骤 经过笔者的实践,总结db2 数据库的跨平台迁移步骤如下: 记录源数据库管理系统配置参数,以备迁移过后数据库系统性能调优; 检查源数据库系统对象,明确要迁移哪些数据库系统对象; 导出源数据库系统的数据集; 生成源数据库系统的数据对象定义语句; 在目标平台创建新的数据库,参照源系统进行设置; 导入源数据集; 检查数据集导入过程日志,排除可能的错误; 执行数据对象定义语句; 检查数据对象语句执行日志,排除可能的错误; 检查更新存储过程的定义; 连接应用系统,测试数据库迁移是否成功。 下面给出一个遵循上述步骤的具体例子,其中将给出执行这些步骤的具体db2 命令以供参考。 1. 记录源数据库管理系统配置参数。这些是很重要的数据环境设置,其中的一些设置关系到迁移能否成功。 清单1. 显示数据库管理系统配置参数的命令 以下是引用片段:

相关主题
文本预览
相关文档 最新文档