软件开发Db2SQL

DB2 低版本需要指定数据类型么?

下面SQL文在高版本(系统7.1)可以运行,但是在5.4版本SQL0418的error
select A1,A2from test
where UPPER(A1) = UPPER(#[paramMap,B1])
但下面强制转换(CAST)后,5.4版本也可以运行
select A1,A2from test
where UPPER(A1) = UPPER(CAST(#[paramMap,B1]) AS VARCHAR(10))
是在低版本中,类型即使一致,也都要做强制类型转换么?
因为不想改SQL文(改动范围太大),在两个系统版本都能运行,有没有其他好办法,拜托哪位高手帮解答!

参与12

3同行回答

仙道彰仙道彰数据库开发工程师花旗集团
db2 ? SQL0418SQL0418N A statement contains a use of an untyped parameter marker, the DEFAULT keyword, or a null value that is not valid.检查下环境,看看你的参数传过来之后是什么类型的,是否有指定参数的类型;显示全部

db2 ? SQL0418
SQL0418N A statement contains a use of an untyped parameter marker, the DEFAULT keyword, or a null value that is not valid.
检查下环境,看看你的参数传过来之后是什么类型的,是否有指定参数的类型;

收起
互联网服务 · 2017-08-24
youyouwoxin888youyouwoxin888IT顾问深圳市深賽爾股份有限公司
DB2是需要指定数据类型的显示全部

DB2是需要指定数据类型的

收起
金融其它 · 2017-08-29
binbinbinbin软件开发工程师个人
是与系统版本(DB2)有关,还是与其他什么有关呢,有没有高手帮解决呀?检查下环境,看看你的参数传过来之后是什么类型的,是否有指定参数的类型是DB2.JAVA里参数定义的是String类型。DB2里定义的是char类型这样在5.4版本就要做类型转换么?...显示全部

是与系统版本(DB2)有关,还是与其他什么有关呢,有没有高手帮解决呀?

检查下环境,看看你的参数传过来之后是什么类型的,是否有指定参数的类型
是DB2.
JAVA里参数定义的是String类型。
DB2里定义的是char类型
这样在5.4版本就要做类型转换么?
收起
软件开发 · 2017-08-24
浏览1793
  • 你可以先获取java传过来的值,你可以先把该值print出来,然后把这个值copy到你的sql语句里执行看下结果;还有字符型记得加引号;先保证传递的值不失真;这种问题不可能是系统版本的问题,如果同样传过来的值都是字符串不可能在一个版本里有用在另一个版本失效;
    2017-08-25

提问者

binbin
软件开发工程师个人
擅长领域: 服务器存储新核心系统

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-08-23
  • 关注会员:3 人
  • 问题浏览:2713
  • 最近回答:2017-08-29
  • X社区推广