2
postgresql을 작성하고 Spring + Hibernate를 사용하여 java 코드에서 name1
매개 변수를 전달합니다.오류 : PostgreSQL에서 COALESCE 유형이 다양 함
SELECT * FROM Test
WHERE name = COALESCE(:name1, name2)
하지만 난 오류
ERROR: COALESCE types bytea and character varying
name1
의 유형 내 자바 코드에서 문자열입니다 있어요.
COALESCE(convert_from(:name1,'UTF8'), name2)
를 해결하기 위해 노력했다. 그러나 Tomcat에서 실행할 때 오류가 발생합니다.
Error:convert_from(character varying, unknown) not exist
해결 방법은 무엇입니까? 감사.
나는 Spring/Hibernate에 대해 많이 알지 못하지만, 두 값을 같은 타입으로 캐스트해야한다. 이것은 인코딩의 문제가 아닙니다. 'SELECT * FROM test WHERE name = COALESCE (캐스트 (name1 AS 텍스트), 캐스트 (name2 AS 텍스트))' –
답장을 보내 주셔서 감사합니다. 'convert_from (문자가 다양하고 알려지지 않은) 존재하지 않음 '이 왜 발생하는지 물어볼 수 있습니까? 'COALESCE (convert_to (: name1, 'UTF8'), name2)'는 PgAdminIII에서 잘 작동합니다. 고마워 :) – LoveTW
"name1"은 String이라고 언급 했으므로 "name2"도 String이 될 것이라고 나는 믿는다. SQL 실행을 위해 "쿼리"또는 "SQLQuery"하이버 네이트 인터페이스를 사용하고 있습니까? SQLQuery이어야합니다. – ms03