Open
Description
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
WHERE jakartanosqltck.entity = 'Animal'
AND jakartanosqltck.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.
PS: 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
Metadata
Metadata
Assignees
Labels
No labels