我们在数据库中存储了一些应用程序参数,我正在寻找一种通过 SQL 提取/解析参数的方法。该数据的一个示例如下:
PROJS["AA",ZZZZ[PARAMETER["One",1]],PROJECTION["Transverse"],UNIT["Two",2]]
因此,例如 Projection 的值将是“Transverse”,而引号将是其中的一部分。我认为解决这个问题的最简单方法是使用 REGEXP_SUBSTR 函数。这是我目前的尝试:
SELECT REGEXP_SUBSTR('PROJS["AA",ZZZZ[PARAMETER["One",1]],PROJECTION["Transverse"],UNIT["Two",2]]', 'PROJECTION\[[^][]*\]') FROM dual;
虽然返回:
PROJECTION["Transverse"]
我意识到我可以删除不需要的字符,但我很好奇是否有人可以推荐任何 REGEX 调整,以便 SELECT 查询在此示例中仅返回“Transverse”。投影并不总是我想要拉出的,例如,如果我想要 Unit 那么我需要返回:“Two”,2
这是使用 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi