当前位置: 首页 > 知识库问答 >
问题:

postgres将字符串插入到数字列-不进行自动类型转换

商皓
2023-03-14

我们使用spring frameworks jdbcTemplate插入数据,如下所示:

Object[] params = {"978","tour"};

jdbcTemplate.update("insert into test1 values (?,?)", params);

但这给出了一个例外:

badsqlgrammareXception:PreparedStatementCallback;错误的SQL语法[插入test1值(?,?)];嵌套异常是org.PostgreSQL.util.psqlException:错误:列“id”是整数类型,但表达式是字符变化类型错误:列“id”是整数类型,但表达式是字符变化类型

解决办法是显式强制转换:

insert into test1 values (?::numeric ,?)

但是有没有更好的方法来进行转换,因为这似乎不是一个好的解决方案,因为有很多查询需要修改,而且还可能有其他类似的强制转换问题。

是否有一些参数可以在DB级别设置以执行自动强制转换?

共有1个答案

隗和裕
2023-03-14

我们在这里找到了答案

存储json、jsonb、hstore、xml、enum、ipaddr等失败,“列”是json类型,但表达式是字符变化类型“

应该添加一个新的连接属性:

props.setProperty(“password”、“secret”

props.SetProperty(“StringType”,“unspecificed”);

连接conn=DriverManager.getConnection(url,props);

 类似资料:
  • 问题内容: 我正在从在Varchar中具有原始提要的表中导入数据,我需要将varchar中的列导入到字符串列中。我尝试使用以及,但是却遇到了错误,因为有一些空字段,我需要将它们作为空或null检索到新表中。 请让我知道是否有相同的功能。 问题答案: 大胆猜测:如果您的值是一个空字符串,则可以使用NULLIF将其替换为NULL:

  • 问题内容: MySQL是否会自动将字符串转换为数字值? 转换如何进行? ‘1234’= 1234吗? ‘1abc’= 1? ‘文本’= 1? 给定那是bigint类型的,该查询将如何解释? 问题答案: 前三个问题的答案是:是,是和否。 当字符串转换为数字时,它将成为value 。 描述类型转换的文档在这里。 对于您的查询: 该摘录摘自文档: 在所有其他情况下,将参数作为浮点数(实数)进行比较。 换

  • 问题内容: 给定python字符串列表,如何自动将其转换为正确的类型?意思是,如果我有: 我希望将其转换为列表 其中第一个元素是stuntng,第二个元素是int,第三个元素是float,第四个元素是int。 我怎样才能做到这一点?谢谢。 问题答案: import ast

  • 方法(下面)是一个类型,我用作参数的类是一个。我想知道我选角的方式是否管用: 这就是方法: 此URL指向类: 我把它放进了粘贴箱,因为课程太长了。

  • 本文向大家介绍VBA 使用CStr将数字类型转换为字符串,包括了VBA 使用CStr将数字类型转换为字符串的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 如何将 float64 值转换为Golang的 十六进制字符串 ?(IEEE 754格式) 样本:-561.2863至0xc40c5253 问题答案: 用途: 游乐场:http : //play.golang.org/p/WEZEtCU1Zl。