你拿着 Oracle 的脚本, 丢到 DB2 里面去跑。 自然是不通过的了。
首先, DB2 是可以支持 BEGIN END 这样的写法的。
例如:
db2 => TRUNCATE TABLE output_debug IMMEDIATE
DB20000I SQL 命令成功完成。
db2 => BEGIN \
db2 (cont) => DECLARE testvalue INT; \
db2 (cont) => SET testvalue = 0; \
db2 (cont) => MyLoop: LOOP \
db2 (cont) => SET testvalue = testvalue + 1; \
db2 (cont) => INSERT INTO output_debug VALUES( TO_CHAR(testvalue) ); \
db2 (cont) => IF testvalue >= 5 THEN \
db2 (cont) => LEAVE MyLoop; \
db2 (cont) => END IF; \
db2 (cont) => END LOOP; \
db2 (cont) => END
DB20000I SQL 命令成功完成。
db2 => select from output_debug
DATA
------------------------------------
1
2
3
4
5
5 条记录已选择。
然后,DB2 好像没 DBMS_OUTPUTput_line 这样的 方法。
DBMS_OUTPUTput_line 是 Oracle 特有的。
最后,
exception when others 这种, 是 Oracle 的异常处理代码。
DB2 的异常处理, 参考下面的例子:
TRUNCATE TABLE output_debug IMMEDIATE@
BEGIN
-- DB2 中,如果需要使用 sqlcode ,那么必须先 DECLARE 以后,才能使用。
DECLARE sqlcode INT;
P1: BEGIN ATOMIC
-- 定义错误处理
-- 如果发生错误,结束处理,并回滚前面做的处理。
DECLARE UNDO HANDLER
FOR
SQLEXCEPTION
BEGIN
-- 异常处理
INSERT INTO output_debug VALUES('出错啦!' || TO_CHAR(sqlcode));
END;
-- 先更新
UPDATE test_main SET value = 'Test3' WHERE id = 1;
-- 插入一行主键重复数据
INSERT INTO test_main VALUES(1, 'PK');
INSERT INTO output_debug VALUES('本语句不会执行到!');
END P1;
END
@
db2 => select from test_main WHERE id = 1@
ID VALUE
----------- ----------
1 Test2
1 条记录已选择。
db2 => select from output_debug@
DATA
----------------------------------------
出错啦!-803
常用数据库有mysql、oracle、sqlserver、sqlite等。
1、Oracle数据库
Oracle数据库管理系统是由甲骨文(Oracle)公司开发的,在数据库领域一直处于领先地位。目前,Oracle数据库覆盖了大、中、小型计算机等几十种计算机型,成为世界上使用最广泛的关系型数据管理系统(由二维表及其之间的关系组成的一个数据库)之一。
2、SQLServer数据库
SQLServer是由微软公司开发的一种关系型据库管理系统,它已广泛用于电子商务、银行、保险、电力等行业。SQLServer提供了对XML和Internet标准的支持,具有强大的、灵活的、基于Web的应用程序管理功能。
3、DB2数据库
DB2数据库是由IBM公司研制的一种关系型数据库管理系统,主要应用于OS/2、Windows等平台下,具有较好的可伸缩性,可支持从大型计算机到单用户环境。
4、MongoDB数据库
MongoDB是由10gen公司开发的一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似JSON的bjson格式,因此可以存储比较复杂的数据类型。
5、MySQL数据库
MySQL数据库管理系统是由瑞典的MySQLAB公司开发的,但是几经辗转,现在是Oracle产品。它是以“客户/服务器”模式实现的,是一个多用户、多线程的小型数据库服务器。而且MySQL是开源数据的,任何人都可以获得该数据库的源代码并修正MySQL的缺陷。
6、Sybase数据库
美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。
以上就是关于DB2数据库字段都是varchar类型的,我把这个语句放到SQL里执行,提示有一个error。请大侠帮忙看看 哪里错了全部的内容,包括:DB2数据库字段都是varchar类型的,我把这个语句放到SQL里执行,提示有一个error。请大侠帮忙看看 哪里错了、数据库有哪几种、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)