From 6324e4038965fa827507ca158bd1545bbf56212c Mon Sep 17 00:00:00 2001 From: aven Date: Wed, 14 Mar 2018 10:49:31 +0800 Subject: [PATCH] TRAFODION-2991 jdbct4 not support nchar & nvarchar --- .../jdbc/t4/TrafT4PreparedStatement.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4PreparedStatement.java b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4PreparedStatement.java index ee1268dff2..0016510c43 100644 --- a/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4PreparedStatement.java +++ b/core/conn/jdbcT4/src/main/java/org/trafodion/jdbc/t4/TrafT4PreparedStatement.java @@ -1244,6 +1244,10 @@ public void setObject(int parameterIndex, Object x, int targetSqlType, int scale case Types.CLOB: setString(parameterIndex, x.toString()); break; + case Types.NCHAR: + case Types.NVARCHAR: + setNString(parameterIndex, x.toString()); + break; case Types.VARBINARY: case Types.BINARY: case Types.LONGVARBINARY: @@ -2517,8 +2521,23 @@ public void setRowId(int parameterIndex, RowId x) throws SQLException { public void setNString(int parameterIndex, String value) throws SQLException { - // TODO Auto-generated method stub + if (connection_.props_.t4Logger_.isLoggable(Level.FINE) == true) { + Object p[] = T4LoggingUtilities.makeParams(connection_.props_, parameterIndex, value); + connection_.props_.t4Logger_.logp(Level.FINE, "TrafT4PreparedStatement", "setNString", "", p); + } + + validateSetInvocation(parameterIndex); + int dataType = inputDesc_[parameterIndex - 1].dataType_; + switch (dataType) { + case Types.CHAR: + case Types.VARCHAR: + addParamValue(parameterIndex, value); + break; + default: + throw TrafT4Messages.createSQLException(connection_.props_, connection_.getLocale(), + "fetch_output_inconsistent", null); + } } public void setNCharacterStream(int parameterIndex, Reader value,