나는 문자열의 배열을 포스트그레스에 삽입하려고합니다. Postgres에서 잘못된 유형 오류가 발생합니다.자바 문자열 설정 [포스트 그레스 준비된 문을
public static void main(String[] args) throws SQLException {
String[] skus = { "0514", "0414", "0314", "0214", "0114", "1213", "1113", "1013", "0913", "0813", "0713", "0613" };
String sqlString = "Insert into dbo.Inventory_Metrics skus values(?)";
Connection conn = DriverManager.getConnection(getPostgresConnUrl());
PreparedStatement ps = conn.prepareStatement(sqlString);
//THIS NEXT LINE THROWS AN ERROR
ps.setObject(1, skus, java.sql.Types.NVARCHAR, skus.length);
int status = ps.executeUpdate();
ps.close();
System.out.print(status);
}
public static String getPostgresConnUrl() {
String database = "mycode";
String userName = "xxxxxxxx";
String password = "xxxxxxxx";
return "jdbc:postgresql://192.168.0.50:5432/" + database + "?user=" + userName + "&password=" + password;
}
하지만 당신은 하나의 물음표를 가지고 있고, 값의 배열입니다. 쉼표로 구분 된 값의 문자열을 대신 사용해보십시오. –
JDBC API는 이러한 방식으로 작동하지 않습니다. 당신이 원하는 것을 설명하십시오. 그 중 PostgreSQL은'NVARCHAR' 타입을 지원하지 않습니다 afaik –
ps.setObject (1, skus, java.sql.Types.VARCHAR, skus.length); // 오류를 수정하고 답변으로 게시하십시오. – Voltron