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 is unclear whether the LIKE operator is supported in the Oracle NoSQL Database. I attempted to execute a query that appeared to follow the correct syntax but encountered an error message suggesting otherwise.
Example Query
SELECT*FROM jakartanosqltck
WHEREjakartanosqltck.entity='Animal'ANDjakartanosqltck.content.name LIKE ?
Error Message
The query fails with the following error:
java.lang.IllegalArgumentException: PREPARE: Illegal Argument: Table, index and unquoted field names may contain only alphanumeric values plus the character "_". Error: at (1, 104) mismatched input 'LIKE' expecting {<EOF>, AND, GROUP, IS, LIMIT, OFFSET, OR, ORDER, '[', '*', '.', '<', '<=', '>', '>=', '=', '!=', LT_ANY, LTE_ANY, GT_ANY, GTE_ANY, EQ_ANY, NEQ_ANY, '+', '-', '/', RDIV, '||'}, at line 1:104
rule stack: [parse]
Observations
The error suggests that LIKE is not recognized by the query parser.
The query follows the expected SQL syntax for LIKE and uses a placeholder (?) for parameter binding.
There is no clear indication in the error message whether the issue lies with the LIKE operator itself or some other part of the query.
Request for Clarification
Does Oracle NoSQL Database support the LIKE operator for string pattern matching?
If not, what is the recommended approach for performing pattern matching in queries? For example, should REGEXP_LIKE be used instead?
If LIKE is supported, is there a specific syntax requirement or limitation that needs to be addressed?
Suggested Improvement
If LIKE is unsupported, it would be helpful for the error message to state this, such as: explicitly
The 'LIKE' operator is not supported in Oracle NoSQL Database. Consider using 'REGEXP_LIKE' for pattern matching.
Use the regex_like function. It provides functionality similar to the LIKE operator in standard SQL, that is, it can be used to check if an input string matches a given pattern.
Because I know you are a Java guy, the syntax of the pattern string is a subset of the one supported by the java Pattern class. Specifically, each character in a regular expression is either a literal character that matches itself, or a meta character, that specifies a "construct" having a special meaning. Only the following constructs are supported: quoted characters, the quotation constructs, the period (.), and the greedy quantifier (*).
Currently, the operators are case sensitive, so please do not use REGEX_LIKE or you will have an error.
It is unclear whether the
LIKE
operator is supported in the Oracle NoSQL Database. I attempted to execute a query that appeared to follow the correct syntax but encountered an error message suggesting otherwise.Example Query
Error Message
The query fails with the following error:
Observations
LIKE
is not recognized by the query parser.LIKE
and uses a placeholder (?
) for parameter binding.LIKE
operator itself or some other part of the query.Request for Clarification
LIKE
operator for string pattern matching?REGEXP_LIKE
be used instead?LIKE
is supported, is there a specific syntax requirement or limitation that needs to be addressed?Suggested Improvement
If
LIKE
is unsupported, it would be helpful for the error message to state this, such as: explicitlyPS: At the documentation I only find the regular expression: https://docs.oracle.com/en/database/other-databases/nosql-database/24.4/nsdev/regular-expression-conditions.html
The text was updated successfully, but these errors were encountered: