/** * @throws Exception If failed. */ @Test public void testParametersMetadata() throws Exception { try (Connection conn = DriverManager.getConnection(URL)) { conn.setSchema("\"pers\""); PreparedStatement stmt = conn.prepareStatement("select orgId from Person p where p.name > ? and p.orgId > ?"); ParameterMetaData meta = stmt.getParameterMetaData(); assert meta != null; assert meta.getParameterCount() == 2; assert meta.getParameterType(1) == Types.VARCHAR; assert meta.isNullable(1) == ParameterMetaData.parameterNullableUnknown; assert meta.getPrecision(1) == Integer.MAX_VALUE; assert meta.getParameterType(2) == Types.INTEGER; assert meta.isNullable(2) == ParameterMetaData.parameterNullableUnknown; } }
/** * @param meta Param metadata. * @param order Param order. * @throws SQLException On errror. */ public JdbcParameterMeta(ParameterMetaData meta, int order) throws SQLException { isNullable = meta.isNullable(order); signed = meta.isSigned(order); precision = meta.getPrecision(order); scale = meta.getScale(order); type = meta.getParameterType(order); typeName = meta.getParameterTypeName(order); typeClass = meta.getParameterClassName(order); mode = meta.getParameterMode(order); }
/** * @throws Exception If failed. */ @Test public void testParametersMetadata() throws Exception { try (Connection conn = DriverManager.getConnection(BASE_URL)) { conn.setSchema("pers"); PreparedStatement stmt = conn.prepareStatement("select orgId from Person p where p.name > ? and p.orgId > ?"); ParameterMetaData meta = stmt.getParameterMetaData(); assertNotNull(meta); assertEquals(2, meta.getParameterCount()); assertEquals(Types.VARCHAR, meta.getParameterType(1)); assertEquals(ParameterMetaData.parameterNullableUnknown, meta.isNullable(1)); assertEquals(Integer.MAX_VALUE, meta.getPrecision(1)); assertEquals(Types.INTEGER, meta.getParameterType(2)); assertEquals(ParameterMetaData.parameterNullableUnknown, meta.isNullable(2)); } }
String name = "par" + i; int sqltype = pmd.getParameterType( i ); int length = pmd.getPrecision( i ); int precision = pmd.getScale( i ); ValueMetaInterface val;
@Override public Integer call() throws SQLException { return pmeta.getPrecision(param); } });
/** * get parameter precision or DB2 max (31) * * @param index parameter index starting with 1 * * @return precision */ protected int getParamPrecision(int index) throws SQLException { if (ps != null && ps instanceof CallableStatement) { ParameterMetaData pmeta = getParameterMetaData(); return Math.min(pmeta.getPrecision(index), FdocaConstants.NUMERIC_MAX_PRECISION); } else return -1; }
/** * get parameter precision or DB2 max (31) * * @param index parameter index starting with 1 * * @return precision */ protected int getParamPrecision(int index) throws SQLException { if (ps != null && ps instanceof CallableStatement) { ParameterMetaData pmeta = getParameterMetaData(); return Math.min(pmeta.getPrecision(index), FdocaConstants.NUMERIC_MAX_PRECISION); } else return -1; }
/** * get parameter precision or DB2 max (31) * * @param index parameter index starting with 1 * * @return precision */ protected int getParamPrecision(int index) throws SQLException { if (ps != null && ps instanceof CallableStatement) { ParameterMetaData pmeta = getParameterMetaData(); return Math.min(pmeta.getPrecision(index), FdocaConstants.NUMERIC_MAX_PRECISION); } else return -1; }
private String getParameterResultSet(ParameterMetaData meta) throws SQLException { StringBuffer buff = new StringBuffer(); if (meta == null) { return "No parameter meta data"; } buff.append("<table cellspacing=0 cellpadding=0>"); buff.append("<tr><th>className</th><th>mode</th><th>type</th>"); buff.append("<th>typeName</th><th>precision</th><th>scale</th></tr>"); for (int i = 0; i < meta.getParameterCount(); i++) { buff.append("</tr><td>"); buff.append(meta.getParameterClassName(i + 1)); buff.append("</td><td>"); buff.append(meta.getParameterMode(i + 1)); buff.append("</td><td>"); buff.append(meta.getParameterType(i + 1)); buff.append("</td><td>"); buff.append(meta.getParameterTypeName(i + 1)); buff.append("</td><td>"); buff.append(meta.getPrecision(i + 1)); buff.append("</td><td>"); buff.append(meta.getScale(i + 1)); buff.append("</td></tr>"); } buff.append("</table>"); return buff.toString(); }
private static String getParameterResultSet(ParameterMetaData meta) throws SQLException { StringBuilder buff = new StringBuilder(); if (meta == null) { return "No parameter meta data"; } buff.append("<table cellspacing=0 cellpadding=0>"). append("<tr><th>className</th><th>mode</th><th>type</th>"). append("<th>typeName</th><th>precision</th><th>scale</th></tr>"); for (int i = 0; i < meta.getParameterCount(); i++) { buff.append("</tr><td>"). append(meta.getParameterClassName(i + 1)). append("</td><td>"). append(meta.getParameterMode(i + 1)). append("</td><td>"). append(meta.getParameterType(i + 1)). append("</td><td>"). append(meta.getParameterTypeName(i + 1)). append("</td><td>"). append(meta.getPrecision(i + 1)). append("</td><td>"). append(meta.getScale(i + 1)). append("</td></tr>"); } buff.append("</table>"); return buff.toString(); }
/** * Converts from JDBC metadata to Avatica parameters */ protected static List<AvaticaParameter> parameters(ParameterMetaData metaData) throws SQLException { if (metaData == null) { return Collections.emptyList(); } final List<AvaticaParameter> params = new ArrayList<>(); for (int i = 1; i <= metaData.getParameterCount(); i++) { params.add( new AvaticaParameter(metaData.isSigned(i), metaData.getPrecision(i), metaData.getScale(i), metaData.getParameterType(i), metaData.getParameterTypeName(i), metaData.getParameterClassName(i), "?" + i)); } return params; }
/** * Converts from JDBC metadata to Avatica parameters */ protected static List<AvaticaParameter> parameters(ParameterMetaData metaData) throws SQLException { if (metaData == null) { return Collections.emptyList(); } final List<AvaticaParameter> params = new ArrayList<>(); for (int i = 1; i <= metaData.getParameterCount(); i++) { params.add( new AvaticaParameter(metaData.isSigned(i), metaData.getPrecision(i), metaData.getScale(i), metaData.getParameterType(i), metaData.getParameterTypeName(i), metaData.getParameterClassName(i), "?" + i)); } return params; }
/** * Converts from JDBC metadata to Avatica parameters */ protected static List<AvaticaParameter> parameters(ParameterMetaData metaData) throws SQLException { if (metaData == null) { return Collections.emptyList(); } final List<AvaticaParameter> params = new ArrayList<>(); for (int i = 1; i <= metaData.getParameterCount(); i++) { params.add( new AvaticaParameter(metaData.isSigned(i), metaData.getPrecision(i), metaData.getScale(i), metaData.getParameterType(i), metaData.getParameterTypeName(i), metaData.getParameterClassName(i), "?" + i)); } return params; }
private void logParam(final ParameterMetaData md, final Parameter parameter) throws SQLException { final int i = parameter.key; final String format = String.format(" - PARAM index=%s, type%s, typeName=%s, className=%s, nullable=%s, mode=%s, precision=%s, value=%s", i, md.getParameterType(i), md.getParameterTypeName(i), md.getParameterClassName(i), md.isNullable(i), md.getParameterMode(i), md.getPrecision(i), parameter.value ); LOGGER.info(format); }
private void logParam(final ParameterMetaData md, final Parameter parameter) throws SQLException { final int i = parameter.key; final String format = String.format(" - PARAM index=%s, type%s, typeName=%s, className=%s, nullable=%s, mode=%s, precision=%s, value=%s", i, md.getParameterType(i), md.getParameterTypeName(i), md.getParameterClassName(i), md.isNullable(i), md.getParameterMode(i), md.getPrecision(i), parameter.value ); LOGGER.info(format); }
/** * @param meta Param metadata. * @param order Param order. * @throws SQLException On errror. */ public JdbcParameterMeta(ParameterMetaData meta, int order) throws SQLException { isNullable = meta.isNullable(order); signed = meta.isSigned(order); precision = meta.getPrecision(order); scale = meta.getScale(order); type = meta.getParameterType(order); typeName = meta.getParameterTypeName(order); typeClass = meta.getParameterClassName(order); mode = meta.getParameterMode(order); }
int parameterPrecision = pmeta.getPrecision(i + 1); int parameterScale = pmeta.getScale(i + 1);
int parameterPrecision = pmeta.getPrecision(i + 1); int parameterScale = pmeta.getScale(i + 1);
private void checkParameter(PreparedStatement prep, int index, String className, int type, String typeName, int precision, int scale) throws SQLException { ParameterMetaData meta = prep.getParameterMetaData(); assertEquals(className, meta.getParameterClassName(index)); assertEquals(type, meta.getParameterType(index)); assertEquals(typeName, meta.getParameterTypeName(index)); assertEquals(precision, meta.getPrecision(index)); assertEquals(scale, meta.getScale(index)); }
assertEquals(ParameterMetaData.parameterModeIn, pm.getParameterMode(1)); assertEquals(Types.VARCHAR, pm.getParameterType(1)); assertEquals(0, pm.getPrecision(1)); assertEquals(0, pm.getScale(1)); assertEquals(ResultSetMetaData.columnNullableUnknown, pm.isNullable(1)); assertEquals(pm.isSigned(1), true); assertThrows(SQLErrorCode.INVALID_VALUE_2, pm).getPrecision(0); assertThrows(SQLErrorCode.INVALID_VALUE_2, pm).getPrecision(4); prep.close(); assertThrows(SQLErrorCode.OBJECT_CLOSED, pm).getPrecision(1);