throw new UnimplementedException("oci_bind_array_by_name");
try {  PreparedStatement oracleStmt = stmt.getPreparedStatement(); java.sql.Connection conn = ((UserConnection) oracleStmt.getConnection()).getConnection();      Class clArrayDescriptor = Class.forName("oracle.sql.ArrayDescriptor");  Method method = clArrayDescriptor.getDeclaredMethod("createDescriptor", new Class[] {String.class, java.sql.Connection.class});  Object arrayDesc = method.invoke(clArrayDescriptor, new Object[] {"NUMBERVARRAY", conn});  Value keyArray[] = varArray.getKeyArray();    Class clARRAY = Class.forName("oracle.sql.ARRAY");  Constructor constructor = clARRAY.getDeclaredConstructor(new Class[] { clArrayDescriptor, Connection.class, Object.class});  Array oracleArray = (Array) constructor.newInstance(new Object[] {arrayDesc, conn, keyArray});          if (name.startsWith(":")) { name = name.substring(1); }   oracleStmt.setArray(1, oracleArray);    return true;  } catch (Exception e) { Throwable cause = e.getCause(); log.log(Level.FINE, e.toString(), e); return false; }
  public static boolean oci_bind_array_by_name(Env env,                                               @NotNull OracleStatement stmt,                                               @NotNull String name,                                               @NotNull String varArray,                                               @NotNull int maxTableLength,                                               @Optional("0") int maxItemLength,                                               @Optional("0") int type)  {    throw new UnimplementedException("oci_bind_array_by_name");  }