我的列值为,
CompanyDetails
Id=18, company=3,org=[objectId=18, objectName=Library], parentOrg=null
Id=10009,company=company=[companyId=3, companyName=CONE],org=[objectId=18, objectName=Library], parentOrg=[objectId=10001, objectName=Cyb 1]
Id=10008, company=3,org=[objectId=10005, objectName=Cyb 5], parentOrg=[objectId=10004, objectName=Cyb 4]
Id=10007, company=3,org=[objectId=10004, objectName=Cyb 4], parentOrg=[objectId=10003, objectName=Cyb 3],
上述列的数据类型为“VARCHAR2”。
现在我希望在上面的列中得到所有对象ID的值。
OrgId
----
18
1004
1005
答案 0 :(得分:3)
如果您确定object id是第3个值,则可以使用regex_substr执行此操作。
SELECT REGEXP_SUBSTR (column, '\d+', 1, 3)
FROM table;
您也可以使用regexp_replace,以防它始终不是第3个值。
SELECT REGEXP_REPLACE (column, '(org=\[objectId=)(\d+)|(.)', '\2')
FROM table;