db2出现DUAL的错误

刚学用db2,在做保存操作时出现以下异常:
SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in bc/tbm/project/model/ProjectDetail.db2.xml. --- The error occurred while applying a parameter map. --- Check the ProjectDetail.getNewProjectId-InlineParameterMap. --- Check the statement (query failed). --- Cause: com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2INST1.DUAL, DRIVER=3.50.152

解决方法是:执行一下 CREATE ALIAS DUAL FOR SYSIBM.SYSDUMMY1; 问题就解决了。

以下为转载内容:

DB2中类似于ORACLE中的DUAL表的表

问题 在ORACLE中,数据库用户可以通过访问DUAL表获取一些系统信息,例如:
'SELECT SYSDATE FROM DUAL'命令返回当前系统日期
SQL> SELECT SYSDATE FROM DUAL;

SYSDATE
----------
18-12-03

'SELECT 1 + 1 FROM DUAL'执行数学运算
SQL> SELECT 1 + 1 FROM DUAL;

1+1
----------
2

'SELECT MY_SEQUENCE.NEXTVAL FROM DUAL'得到序列值
SQL> SELECT MY_SEQUENCE.NEXTVAL FROM DUAL;

NEXTVAL
----------
2

在DB2中,是否有对应的表?

解答 是的,DB2中存在一个对于的表:SYSIBM.SYSDUMMY1

用户可以通过访问这个表获取相应的信息。

例如:
'SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1' 命令返回当前系统日期

db2 => SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1

1
----------
2003-12-18

1 条记录已选择。

'SELECT 1+1 FROM SYSIBM.SYSDUMMY1' 执行数学运算
db2 => SELECT 1+1 FROM SYSIBM.SYSDUMMY1

1
-----------
2

1 条记录已选择。

'SELECT NEXTVAL FOR MYSEQ FROM SYSIBM.SYSDUMMY1' 得到序列值
db2 => SELECT NEXTVAL FOR MYSEQ FROM SYSIBM.SYSDUMMY1

1
-----------
3

1 条记录已选择。

此外,在DB2中,用户还可以用VALUES语句查询上面的值。

例如:
db2 => VALUES CURRENT DATE

1
----------
2003-12-18

1 条记录已选择
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值