You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It seems that using a named parameter multiple times isn't working properly.
Consider the following statement:
SELECT id, name, manual FROM legoset WHERE name = :P0_name or name = :P0_name
Trying to run the statement with:
Mono.from(connectionFactory.create())
.flatMapMany(it -> {
returnit.createStatement("SELECT id, name, manual FROM legoset WHERE name = :P0_name or name = :P0_name")
.bind("P0_name", "unknown")
.execute();
}).flatMap(it -> it.map((row, rowMetadata) -> row.get(0))).blockLast();
fails with:
java.lang.IllegalStateException: One or more parameters are not set
at oracle.r2dbc.impl.OracleStatementImpl.requireAllParametersSet(OracleStatementImpl.java:790)
at oracle.r2dbc.impl.OracleStatementImpl.add(OracleStatementImpl.java:341)
at oracle.r2dbc.impl.OracleStatementImpl.execute(OracleStatementImpl.java:458)
Running the statement as SELECT id, name, manual FROM legoset WHERE name = :P0_name works fine.
The text was updated successfully, but these errors were encountered:
@mp911de: Thanks for finding this.
I'll see about fixing this, such that setting a bind value by name will set a value for all parameters that match the specified name; The current implementation just sets a value for the first occurrence of a parameter with a matching name.
It seems that using a named parameter multiple times isn't working properly.
Consider the following statement:
Trying to run the statement with:
fails with:
Running the statement as
SELECT id, name, manual FROM legoset WHERE name = :P0_name
works fine.The text was updated successfully, but these errors were encountered: