以 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 所需的结果放入表单中。由于所有 计算 都是在数据库中执行的,所以它会起作用。
我有一个字段 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 所需的结果放入表单中。由于所有 计算 都是在数据库中执行的,所以它会起作用。