Java 错误:在 PostgreSQL 中 COALESCE 类型 bytea 和字符不同
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/20754466/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ERROR: COALESCE types bytea and character varying in PostgreSQL
提问by LoveTW
I write a postgresql and pass parameter name1
from my java code with Spring + Hibernate.
我编写了一个 postgresql 并name1
使用 Spring + Hibernate 从我的 java 代码中传递参数。
SELECT * FROM Test
WHERE name = COALESCE(:name1, name2)
but i got an error
但我有一个错误
ERROR: COALESCE types bytea and character varying
The type of name1
is String in my java code.
name1
我的java代码中的类型是String。
I tried to solve the problem
我试图解决这个问题
COALESCE(convert_from(:name1,'UTF8'), name2)
It will pass JUNIT Test in Eclipse. However when I run it on Tomcat, I will get an error
它将通过 Eclipse 中的 JUNIT 测试。但是当我在Tomcat上运行它时,我会得到一个错误
Error:convert_from(character varying, unknown) not exist
How to solve it? Thanks.
如何解决?谢谢。
采纳答案by LoveTW
I have solve my question.
我已经解决了我的问题。
SELECT * FROM Test
WHERE name = COALESCE(CAST(:name1 AS TEXT), name2)
Thank Erwin Brandstetter for giving me advise.
感谢 Erwin Brandstetter 给我的建议。