DB2数据库字段都是varchar类型的,我把这个语句放到SQL里执行,提示有一个error。请大侠帮忙看看 哪里错了

DB2数据库字段都是varchar类型的,我把这个语句放到SQL里执行,提示有一个error。请大侠帮忙看看 哪里错了,第1张

你拿着 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

运行db2cc,在控制中心中右击要修改的表,生成DDL,将该DDL中CREATE TABLE命令包括表名进行相应修改后,运行该命令创建符合需要的新表。 然后insert into newtable select from oldtable,如果可以兼容的话,否则你需要考虑怎么修改一下。

1第一步:进入DB2命令行模式,连接到需要导入信息的表所有在的数据库。 db2 connect to db_name user username using password

2第二步:输入导出命令。 db2 export to D:\blob_data\blob_tabletxt of del lobs to D:\blob_data lobfile lob_doc

常用数据库有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平台上客户机/服务器环境下的大型数据库系统。

数据库有两种类型,分别是关系型数据库与非关系型数据库。

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等 *** 作。

关系型数据库主要有:

Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等等。

非关系型数据库主要有:

NoSql、Cloudant、MongoDb、redis、HBase等等。

扩展资料

非关系型数据库的优势:

1、性能高:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。

2、可扩展性好:同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

关系型数据库的优势:

1、可以复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

2、事务支持良好:使得对于安全性能很高的数据访问要求得以实现。

参考资料来源:百度百科-数据库

不太明白 你为什么 确认是 number,而不是 number(p,s)

如果是 数据库表 的字段 的数据类型, 一般都要指定 p,s 的吧 (当然s=0)算特例。

说回你的问题: Number 声明一个浮点数 其精度为38

也就是说,你在db2中找到一个浮点数的数据类型,精度 38 的即可。参考下面2个类型:

单精度浮点数(Single-precision floating-point),REAL:单精度浮点数是实数的 32 位近似值。数字可以为零,或者在从

-3402E+38 到 -1175E-37 或从 1175E-37 到 3402E+38

的范围内。

双精度浮点数(Double-precision floating-point),DOUBLE,DOUBLE PRECISION 或

FLOAT:双精度浮点数是实数的 64 位近似值。数字可以为零,或者在从 -179769E+308 到 -2225E-307 或从 2225E-307 到

179769E+308 的范围内。

以上就是关于DB2数据库字段都是varchar类型的,我把这个语句放到SQL里执行,提示有一个error。请大侠帮忙看看 哪里错了全部的内容,包括:DB2数据库字段都是varchar类型的,我把这个语句放到SQL里执行,提示有一个error。请大侠帮忙看看 哪里错了、db2数据库中数字类型是用什么定义、db2数据库blob类型怎么查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9542640.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存