1.db2的存储过程中怎么写建表语句
您好,很高兴为bai您解答。
CREATE PROCEDURE db2admin.CREATE_DATABASE()
SPECIFIC db2admin.CREATE_DATABASE
LANGUAGE SQL
BEGIN
declare sSql varchar(1000) ;
set sSql = 'CREATE TABLE A (ID BIGINT NOT NULL)';
prepare s1 from sSql;
execute s1;
END
如若满意,请点击du右侧【采纳答案】,如zhi若还有问题,dao请点击【追问】
希望我回的回答对您有所帮助,望采纳!答
~ O(∩_∩)O~
2.db2的存储过程中怎么写建表语句
CREATE PROCEDURE db2admin.CREATE_DATABASE()
SPECIFIC db2admin.CREATE_DATABASE
LANGUAGE SQL
BEGIN
declare sSql varchar(1000) ;
set sSql = 'CREATE TABLE A (ID BIGINT NOT NULL)';
prepare s1 from sSql;
execute s1;
END
3.db2的存储过程中怎么写建表语句
您好,很高兴为bai您解答。
CREATE PROCEDURE db2admin.CREATE_DATABASE() SPECIFIC db2admin.CREATE_DATABASE LANGUAGE SQL BEGIN declare sSql varchar(1000) ; set sSql = 'CREATE TABLE A (ID BIGINT NOT NULL)'; prepare s1 from sSql; execute s1; END 如若满意,请点击du右侧【采纳答案】,如zhi若还有问题,dao请点击【追问】希望我回的回答对您有所帮助,望采纳!答 ~ O(∩_∩)O~。
4.高手帮忙写个db2 存储过程
CREATE PROCEDURE SP_TEST()
SPECIFIC SP_TEST
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
MODIFIES SQL DATA
CALLED ON NULL INPUT
INHERIT SPECIAL REGISTERS
BEGIN ATOMIC
--全局错误处理变量
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';
--异常错误处理变量
DECLARE V_SQLCODE INTEGER DEFAULT 0;
DECLARE V_SQLSTATE CHAR (5) DEFAULT '00000';
DECLARE V_BREAKPOINT CHAR (13) DEFAULT '001';
DECLARE V_ERRMSG VARCHAR (255);
DECLARE V_NOTFOUND SMALLINT DEFAULT 0;
--SQL异常处理程序体
DECLARE EXIT HANDLER FOR sqlexception
BEGIN
DECLARE CONTINUE HANDLER FOR sqlexception
BEGIN
SET MESSAGE_TEXT = V_ERRMSG;
END ;
SELECT SQLCODE,SQLSTATE INTO V_SQLCODE ,V_SQLSTATE FROM SYSIBM.SYSDUMMY1 ;
RESIGNAL;
END;
--SQL NOT FOUND 处理程序体
DECLARE CONTINUE HANDLER FOR NOT FOUND
BEGIN
SET V_NOTFOUND = 1;
END ;
SET V_BREAKPOINT = '001';
INSERT INTO man (name ,age ,status) VALUES ('name',1,0);
insert into P_score(person_id ,score) values (select max(id) from man,10);
END;
DB2的存储过程自己会启事务,失败会自动回滚的
5.db2存储过程中怎样写游标
不是这样的,存储过程中不是非要用游标啊,他有输入和输出参数,只要在过程中做相应的处理就会返回输出参数。游标的作用主要是为了循环提取数据,游标分隐性游标和显性游标。
举个例子(显性游标):
cursor 游标名 is select 语句;
while 游标名% found loop
end loop;其中的select 语句提取的是一列值,然后每次取一个进行下面的循环。
(隐性游标):
for 游标名 in (select 语句)loop
end loop;其中的select 语句提取的也是一列值,然后每次取一个进行下面的循环。
6.请教一个db2的存储过程
1、存储过程编写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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;
SET V_RESULT = NULL; --为变量赋值
--检查用户输入的信息是否合法
select b.id INTO V_RESULT from TableNameB b,TableNameC c where 正常的判断条件
if(V_RESULT IS NOT NULL) then ---如果合法,执行下面的insert语句
INSERT INTO TableNameA(ID,ENTNAME,REGNO,PASSWORD,LEREP,CERTYPE,CERNO,LINKMAN,SEX,MOBTEL,REQDATE,REMITEM,STATE,TIMESTAMP)
VALUES(IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP);
end if;
commit;
END
@
2、调用存储过程
1.拷贝到DB2客户端工具中直接执行
2.将上面的语句保存为test.db2文件放到任意目录下(比如D盘根目录),然后在cmd输入db2cmd 然后输入db2 -td@ -vf D:\test.db2即可
3.直接写sql:
call PLName(存储过程名字) (IN_ID,IN_ENTNAME,IN_REGNO,IN_PASSWORD,IN_LEREP,IN_CERTYPE,IN_CERNO,IN_LINKMAN,IN_SEX,IN_MOBTEL,IN_REQDATE,IN_REMITEM,IN_STATE,IN_TIMESTAMP对应的值)
7.DB2怎样创建存储过程
CREATE PROCEDURE "DB2INST2"."SP_SF_GET_PRESC"
(IN "V_GHXH" BIGINT,
IN "V_RECORDSTATUS" SMALLINT,
IN "V_TYPE" SMALLINT,
IN "V_PRESCNO" BIGINT,
IN "V_ISQX" SMALLINT,
OUT "ERR_CODE" INTEGER,
OUT "ERR_TEXT" VARCHAR(100)
)
LANGUAGE SQL
NOT DETERMINISTIC
CALLED ON NULL INPUT
EXTERNAL ACTION
OLD SAVEPOINT LEVEL
MODIFIES SQL DATA
INHERIT SPECIAL REGISTERS
P1: BEGIN
DECLARE SQLCODE INT;
DECLARE V_CFQX SMALLINT;
DECLARE V_SFFYKS BIGINT;--
DECLARE V_YBDM CHAR(4);
--具体实现
END P1;
8.如何执行db2存储过程
1、db2 create database 数据库名 <;-- 创建数据库
2、db2 connect to 数据库名 user 用户名 using 用户密码 <;-- 连接数据库
3、db2 -tvf otpdb_v3_db2.sql <;-- 为新建数据库建立表结构
4、db2 -td@ -f 存储过程文件绝对路径 <;-- 导入存储过程,无错误会提示成功
4、调用存储过程:
Windows 下:db2 call 存储过程名(参数1,参数2)
AIX 下:db2 <;-- 要先进入DB2,方可调用存储过程或执行SQL语句
db2=>call 存储过程名(参数1,参数2)
5、验证插入数据是否成功
Windows 下:db2 select count(*) from FTOTP_USERINFO
AIX 下:db2 <;-- 要先进入DB2,方可调用存储过程或执行SQL语句
db2=>select count(*) from FTOTP_USERINFO
Windows 下:db2 select count(*) from FTOTP_TOKENINFO
AIX 下:db2 <;-- 要先进入DB2,方可调用存储过程或执行SQL语句
db2=>select count(*) from FTOTP_TOKENINFO
转载请注明出处育才学习网 » db2存储过程怎么写