以 oracle 形式获取逗号分隔的数据

Get comma separated data in oracle forms

我有一个字段 orderno 的数据格式为

"PUR/0012/17-18","PUR/0013/17-18"

我想获取由逗号分隔的不同 orderno

我使用的查询是

SELECT REGEXP_SUBSTR('PUR/0012/17-18','PUR/0013/17-18','[^,]+', 15, LEVEL) 
FROM dual
CONNECT BY REGEXP_SUBSTR('PUR/0012/17-18','PUR/0013/17-18', '[^,]+', 15, LEVEL) IS NOT NULL )  

但是显示错误。

我能想到的两件事。

第一个很明显 - 您编写的查询无效。应该是

SQL> SELECT REGEXP_SUBSTR('PUR/0012/17-18,PUR/0013/17-18','[^,]+', 1, LEVEL) result
  2  FROM dual
  3  CONNECT BY REGEXP_SUBSTR('PUR/0012/17-18,PUR/0013/17-18', '[^,]+', 1, LEVEL) IS NOT NULL;

RESULT
-----------------------------
PUR/0012/17-18
PUR/0013/17-18

SQL>

一旦你修复了它,但如果它仍然不起作用,是因为你没有提到你使用的 Oracle Forms 版本;也许它是不支持正则表达式的版本之一。如果是这种情况,您应该创建一个 stored 函数,它将 return 所需的结果放入表单中。由于所有 计算 都是在数据库中执行的,所以它会起作用。