【发布时间】:2014-10-02 10:58:57
【问题描述】:
我有以下 Oracle SQL 查询:
SELECT SUBSTR(col, 0, INSTR(col, REGEXP_SUBSTR(col, '\.\d+$')) -1) AS col_new, col as col_orig AS col_orig FROM tab;
我的表格中有如下数据:
col
ABC.A.01
ABC.A.02
以上查询返回如下结果:
col_new col_orig
ABC.A ABC.A.01
ABC.A ABC.A.02
我正在尝试将其迁移到 JPA 命名查询。到现在我只能这样查询:
SELECT SUBSTRING(f.col, 0, LENGTH(f.col) - LOCATE('.', REVERSE(f.col))), f.col FROM tab f;
我这样做是因为我无法在 JPA 中为 Oracle 的 REGEXP_SUBSTR 找到等效项。我的 JPA 命名查询在 ABC.A.P01 等数据示例中失败。
您能否告诉我如何使用 REGEXP_SUBSTR 的等效项将我的 SQL 查询迁移到 JPA 命名查询。
【问题讨论】:
-
在收到来自 JPA 调用的数据后,在 Java 中执行此操作(使用
replaceAll())可能更容易。
标签: java regex oracle jpa named-query