diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/OracleConnection.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/OracleConnection.java index 136ab98ae..eab8b56ae 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/OracleConnection.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/OracleConnection.java @@ -64,6 +64,8 @@ static Future connect(Vertx vertx, String connectionUri) { return connect(vertx, fromUri(connectionUri)); } + Object createArray(String typeName, Object elements); + /** * {@inheritDoc} */ diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java index 6f2cf6f7d..2be00d8fc 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java @@ -21,6 +21,7 @@ import io.vertx.sqlclient.impl.SingletonSupplier; import io.vertx.sqlclient.impl.SqlConnectionBase; import io.vertx.sqlclient.spi.ConnectionFactory; +import oracle.jdbc.internal.OracleArray; public class OracleConnectionImpl extends SqlConnectionBase implements OracleConnection { @@ -33,4 +34,9 @@ public static Future connect(Vertx vertx, OracleConnectOptions OracleConnectionFactory client = new OracleConnectionFactory(ctx.owner(), SingletonSupplier.wrap(options)); return prepareForClose(ctx, client.connect(ctx)).map(OracleConnection::cast); } + + @Override + public Object createArray(String typeName, Object elements) { + return ((OracleJdbcConnection) conn.unwrap()).createArray(typeName, elements); + } } diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java index cf99b6ced..398130e68 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleJdbcConnection.java @@ -57,6 +57,15 @@ public OracleJdbcConnection(ContextInternal ctx, ClientMetrics metrics, OracleCo this.metadata = metadata; } + public Object createArray(String typeName, Object elements) { + try { + return connection.createARRAY( typeName, elements ); + } + catch (SQLException e) { + throw new RuntimeException( e ); + } + } + @Override public int pipeliningLimit() { return 1;