搜档网
当前位置:搜档网 › DB2基本操作手册_V1.0

DB2基本操作手册_V1.0

DB2基本操作手册_V1.0
DB2基本操作手册_V1.0

DB2基本操作手册

1培训前提

要进行本次培训,您必须首先掌握以下技能或达到以下目标:

9完成 Lesson 4_1的培训。

2培训目标

在本次培训完成后,你将会掌握以下技能或达到以下目标:

9学会安装 DB2基本配置。

9学会对于DB2基本数据库操作。

3详细说明

3.1 创建数据库用户

3.1.1说明

DB2的用户,首先必须是当前操作系统的用户,DB2的用户只能在操作系统用户中选取。

3.1.2增加操作系统用户 als6

3.1.3对于 als6赋 db2权限

3.2 打开 DB2 命令管理中心

3.3 创建数据库

在 DB2 CLP窗口中键入: db2 create database als6 pagesize 16 k

系统提示: DB20000I CREATE DATABASE 命令成功完成。表示创建完成。

3.4 连接数据库

在 DB2 CLP窗口中键入db2 connect to als6 user als6 using als6

3.5 运行Script 建表1、进入目录 d:\mydb2下。

2、将资源包中的脚本 DB2_script_createtable.sql 拷贝到当前目录下

3、运行命令:db2 -td@ -vf DB2_script_createtable.sql

出现如下窗口:

3.6 运行Sql语句

3.6.1新增记录

1、在命令窗口运行命令:db2 "insert into HRUSER_INFO (USERID, USERNAME) values('1','测试')" 出现如下窗口:

3.6.2查看数据

1、在命令窗口运行命令:db2 "select * from HRUSER_INFO"

出现如下窗口:

3.6.3删除表

1、在命令窗口运行命令:db2 "drop table HRUSER_INFO" 出现如下窗口

3.7 备份数据库

备份前请先重复建表步骤,建立自己的测试表。

建立如下目录结构: d:\mylabs\db2backup

3.7.1导出数据

1、在命令窗口进入目录d:\mylabs\db2backup,建立目录 db2move,并进入该目录,如图:

2、运行命令db2move als6 export -u als6 -p als6

3、出现如下窗口:

3.7.2导出数据库结构

1、在命令窗口进入目录: D:\mydb2\db2backup

2、以 @ 为分割符导出数据库结构:

在命令窗口执行:db2look -d als6 -td @ -i als6 -w als6 -e -o db2look.ddl 出现如下窗口:

3.8 删除数据库

1、关闭当前命令窗口。

2、打开新的DB2 命令窗口

在命令窗口执行命令:db2 drop database als6 出现如下窗口:

3.9 恢复数据库

1、创建数据库:重复 3.3步骤

2、进入目录 D:\mydb2\db2backup

3、执行语句db2 -td@ -vf db2look.ddl (注意:需要输入als6用户的密码)

4、进入目录 D:\mydb2\db2backup\db2move

5、执行命令: db2move ALS6 load 出现窗口

3.10 DB2 服务说明

我们通常用到的服务为:DB2 - DB2-0 和DB2DAS - DB2DAS00

日常数据库的建表、倒数据进行一些基本数据库的交互操作只需要启动服务DB2 - DB2-0。

如果要建立数据库用户、表空间等一些数据库配置方面的操作需要启动服务 DB2 - DB2-0 和DB2DAS - DB2DAS00,其他DB2服务暂时ALS系统用不到。

4思考题

1、对于DB2的数据库进行新增、删除、修改有几种模式?各个模式之间各有什么优缺点?

2、DB2的数据库备份恢复是按照什么样的步骤进行的?

3、参照文档《参考资料-数据库使用汇总.dco》中关于 db2 的一些常用命令,尝试使用这些命令管理你自

己的db2 数据库。(祝你成为db2数据库的高手)

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常用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) 以指定分隔符“|”加载:

sqc基础库使用手册

SqcLib库接口定义 新的sqc基础库采用c++封装,开发人员只需要从基础类Db2Tools派生自己的业务类。然后重载基础类的busiLogic方法,就可以完成自己业务逻辑处理。具体的处理流程为: 1、在基础类Db2Tools的run方法中完成对具体应用参数的解析。 2、run方法调用busiLogic方法,完成具体的业务逻辑 3、busiLogic方法中调用基础类的常用数据库访问方法,完成对数据库的操作。 4、在基础类的数据库访问方法中,除完成指定的数据库操作外,同时完成日志输出和相关事务控制。[日志的输出目录为profile文件中定义的AGENTTRACEDIR目录,如果没有定义,取默认路径] 1函数列表 1.1数据库类(Db2Tools) 该类有两个主要功能: 1、实现数据库访问 2、完成对具体业务逻辑调用和事务控制 ●connDb 函数原形:int connDb(const char *m_para_conn) 用途:连接数据库 参数:m_para_conn:数据库名dbname 返回:1.输入的数据库参数不对 2.密码参数环境变量设置错误 3.数据库连接失败 0.数据库连接成功 ●busiLogic 函数原形:int busiLogic(void) 用途:业务逻辑入口 参数: 返回: ●run 函数原形:int run(int argc,char *argv[]) 用途:实例开始入口 参数:argc:参数个数

Argv:参数数组 (通常取main函数入口参数) 返回:0:成功,其它:失败 ●db2RunstatTab 函数原形:int db2RunstatTab(char *tabname,char *file,int line) 用途:对表做runstats 参数:tabname:输入需要runstats的表名,schema.tabname或者tabname(schema默认为用户名) 返回:-1:失败 0:成功 ●db2Insert 函数原形:int db2Insert(char *sqlstr,char *tabname,char *file,int line) 用途:提交insert语句 参数: sqlstr:insert sql语句 file: line: 返回:-1:失败 0:成功 ●db2Update 函数原形:int db2Update(char *sqlstr,char *tabname,char *file,int line) 用途:提交update语句 参数: sqlstr:update sql语句 file: line: 返回:-1:失败 0:成功 ●db2Delete 函数原形:int db2Delete(char *sqlstr,char *tabname,char *file,int line) 用途:提交delete语句 参数: sqlstr:delete sql语句 file: line: 返回:-1.失败 0.成功 ●db2DropTab 函数原形:int db2DropTab(char *tabname,char *file,int line) 用途:删除表 参数: tabname:需要删除的表名,schema.tabname file:

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 简明运维手册

DB2 简明运维手册 数据库启动 数据库正常启动的流程包括两个步骤, 首先启动数据库实例,在root用户下切换到实例用户su - db2inst1,执行命令db2start 然后激活对应的数据库,执行命令: db2 activate db 数据库名。 直到出现: 则数据库成功启动。 数据库停止 停止数据库使用如下命令: 在root用户下切换到实例用户su - db2inst1,执行命令db2stop force, 直到出现: 则数据库停止成功。 数据库参数 DB2的参数分为实例级参数和数据库级参数,以及实例注册变量 实例级参数:

主要设置实例使用的TCP/IP端口,查看实例端口通过命令:db2 get dbm cfg 数据库实例注册变量: 确认设置了通信协议为TCPIP,命令如下: 如果没有设置则通过命令db2set DB2COMM=tcpip进行设置。 数据库参数 确认内存自动调整已经打开, 否则连接到数据库并执行db2 update db cfg for sample using SELF_TUNING_MEM ON设置 数据库的缺省日志参数为

如果需要修改日志参数,可以通过命令 db2 udpate db cfg for 数据库名using 参数名参数值 例如增大备用日志文件数量到50,则可以通过命令修改 创建数据库 在实例用户下,执行 db2 "create <数据库名> on <目标路径> using codeset UTF-8 territory cn" 这样创建的数据库缺省页面大小(pagesize)为4K(4096),字符集为UTF-8,如果要使用GBK字符集,则把UTF-8修改为GBK即可。 创建缓冲池(bufferpool) 为了使用与缺省页面大小不一致的表空间,例如缺省页面大小为4K,但是需要使用32K页的表空间,就必须先创建页面大小为32K的缓冲池,命令如下:db2 "create bufferpool bp32k pagesize 32768" bp32k为缓冲池的名字,通常每种页面大小创建一个缓冲池即可,例如8K页面的缓冲池可以命名为bp8k。缓冲池缺省为自动调整大小,如果需要限定使用内存,则使用alter命令,如下: db2 "alter bufferpool bp32k size <页面数量> " <页面数量>为目标内存大小/页面大小,例如要为32K的bufferpool分配2GB内存,则: <页面数量>=2 * 1024 * 1024 / 32 = 65536 创建表空间 如果创建数据库默认页面大小的表空间,并且选择系统自动管理的模式,则使用命令: db2 "create tablespace <表空间名>"

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数据库SQL语法参考手册

DB2数据库SQL语法参考手册 DB2提供了关连式资料库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以"系统R"的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。 一、资料定义DDL(Data Definition Language) 资料定义语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 1.建表格: CREATE TABLE table_name( column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], column2 DATATYPE [NOT NULL], ...) 说明: DATATYPE是资料的格式,详见表。 NUT NULL可不可以允许资料有空的(尚未有资料填入)。 PRIMARY KEY是本表的主键。 2.更改表格 ALTER TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法。 ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name)

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)。首先我们看一下声明这两种游标的例子:

WAS详细操作讲解学习

WAS详细操作 1.节点部署 概要文件(Profile)定义一个独立应用程序服务器(Server)的运行时环境, 包括服务器在运行时环境中处理的所有文件 节点(Node)是受管服务器(Server)的逻辑分组, 节点通常与具有唯一IP主机地址的逻辑或物理计算机系统对应, 节点不能跨多台计算机 Node Agent 是将管理请求路由至服务器的管理代理程序, Node Agent 是服务器, 是一个管理代理程序, 并不涉及应用程序服务功能, Node Agent 进程在每个受管节点上运行, 并专门执行特定于节点的管理功能, 如服务器进程监视、配置同步、文件传输和请求路由, Deployment Manager通过与Node Agent的交互完成对单元内节点的控制 Node是管理上使用的概念, Profile是实际的概要文件, 它们代表同一事物 查看所有概要文件: export WAS_HOME=/opt/WebSphere/AppServer cd $WAS_HOME/bin ./manageprofiles.sh -listProfiles 1.1.D eploymentManager DeploymentManager(简称DM) 为单元中所有元素提供了单一的管理控制中心点 DM属于一个特殊的节点, 用以下步骤创建: export WAS_HOME=/opt/WebSphere/AppServer cd $WAS_HOME/bin ./manageprofiles.sh -create \ -templatePath $WAS_HOME/profileTemplates/dmgr \ -profileName Dmgr01 \ -profilePath $WAS_HOME/profiles/Dmgr01 \ - nodeName (节点名) \ -cellName (单元名) \ -hostName (主机名) (其中红色部分为概要文件名, 可根据实际情况修改)

DB2日常维护手册

DB2 日常维护手册

目录 DB2日常维护手册 ............................................................................................................... - 1 - 一、DB2日常维护操作 ............................................................................................ - 1 - 1.检查管理服务器是否启动.................................................................................... - 1 - 2.检查DB2实例是否已经启动 ............................................................................... - 1 - 3.查看表空间状态是否正常.................................................................................... - 1 - 4.查看表的状态........................................................................................................ - 2 - 5.查看磁盘空间........................................................................................................ - 2 - 6.检查存储管理软件是否正常................................................................................ - 2 - 7.检查数据库备份是否正常.................................................................................... - 2 - 8.检查归档日志是否正确归档了............................................................................ - 3 - 9.查看缓冲池的命中率............................................................................................ - 3 - 10.查看当前运行最频繁的SQL,其命中率是否正常 ......................................... - 3 - 11.查看当前连接的应用程序,有没有非法连接 ................................................ - 3 - 12.检查有没有死锁 ................................................................................................ - 3 - 13.对表和索引进行runstats .................................................................................. - 3 - 14.检查表是否需要重组 ........................................................................................ - 4 - 15.对需要重组的表进行重组 ................................................................................ - 4 - 二、DB2日常维护月操作 ........................................................................................ - 4 - 1.查看DB2日志 ....................................................................................................... - 4 - 2.检查备份和日志是否都保存好了........................................................................ - 4 - 三、DB2日常维护季度操作 .................................................................................... - 5 - 1.通过快照监控器,查看系统性能如何 ................................................................ - 5 - 2.数据库补丁级别.................................................................................................... - 5 - 四、注意事项............................................................................................................ - 5 - 1.不要删除活动日志文件........................................................................................ - 5 - 2.注意交易日志存储空间........................................................................................ - 5 - 3.按照系统的实际工作量配置日志空间 ................................................................ - 5 - 4.设置正确数据库代码页........................................................................................ - 6 -

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)模式名是用来指定该存储过程属于哪个模式下的,默认为编译该过程的登录用户名,但为了过程的统一管理以及各系统间的相互区分,必须要指定一个模式名,模式名由过程所属项目设计中统一制

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客户端产品有:

经典:深入了解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操作指南及命令大全

DB2操作指南及命令大全 1.启动实例(db2inst1): db2start 2.停止实例(db2inst1): db2stop 3.列出所有实例(db2inst1) db2ilist 4.列出当前实例: db2 get instance 5.设置当前实例 set db2instance=db2 6.察看示例配置文件: db2 get dbm cfg|more 7.更新数据库管理器参数信息: db2 update dbm cfg using para_name para_value 8.创建数据库: db2 create db test 9.察看数据库配置参数信息 db2 get db cfg for test|more 10.更新数据库参数配置信息 db2 update db cfg for test using para_name para_value 11.删除数据库: db2 drop db test 12.连接数据库 db2 connect to test 13.列出所有表空间的详细信息。 db2 list tablespaces show detail 14.列出容器的信息 db2 list tablespace containers for tbs_id show detail

15.创建表: db2 ceate table tb1(id integer not null,name char(10)) 16.列出所有表 db2 list tables 7.插入数据: db2 insert into tb1 values(1,’sam’); db2 insert into tb2 values(2,’smitty’); 18.查询数据: db2 select * from tb1 9.数据: db2 delete from tb1 where id=1 0.创建索引: db2 create index idx1 on tb1(id); 1.创建视图: db2 create view view1 as select id from tb1 2.查询视图: db2 select * from view1 3.节点编目 db2 catalog tcp node node_name remote server_ip server server_port 4.察看端口号 db2 get dbm cfg|grep SVCENAME 5.测试节点的附接 db2 attach to node_name 6.察看本地节点 db2 list node direcotry 7.节点反编目 db2 uncatalog node node_name 8.数据库编目 db2 catalog db db_name as db_alias at node node_name

相关主题