我有一个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 )
但是它显示错误。
答案 0 :(得分:2)
我能想到的两件事。
第一个很明显-您编写的查询无效。应该是
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版本的事实;也许它是不支持正则表达式的版本之一。在这种情况下,您应该创建一个存储函数,该函数会将所需的结果返回到表单中。由于所有 calculation 都在数据库中执行,因此可以正常工作。