Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL-提取<&燃气轮机;长类型列中的标记值_Sql_Oracle_Oracle Sqldeveloper_Longtext - Fatal编程技术网

Oracle SQL-提取<&燃气轮机;长类型列中的标记值

Oracle SQL-提取<&燃气轮机;长类型列中的标记值,sql,oracle,oracle-sqldeveloper,longtext,Sql,Oracle,Oracle Sqldeveloper,Longtext,我有一个列名为“messages”的长类型表 messages列包含如下数据: <trans><body></body>...</trans> 。。。 我只想提取标记中的信息并选择它。如何使用SQL查询获取该信息?您可以使用SUBSTR()提取该信息。使用INSTR()函数计算body标记的起始位置,添加6以补偿标记长度。对于要转到的字符数,请使用另一个INSTR()查找结束正文标记,然后减去打开标记的长度 SELECT SUBSTR(my_c

我有一个列名为“messages”的长类型表 messages列包含如下数据:

<trans><body></body>...</trans>
。。。
我只想提取
标记中的信息并选择它。如何使用SQL查询获取该信息?

您可以使用SUBSTR()提取该信息。使用INSTR()函数计算body标记的起始位置,添加6以补偿标记长度。对于要转到的字符数,请使用另一个INSTR()查找结束正文标记,然后减去打开标记的长度

SELECT SUBSTR(my_column, INSTR(my_column,'<body>') + 6,
    INSTR(my_column,'</body>') - INSTR(my_column,'<body>') - 5) AS body_extracted
FROM my_table
选择SUBSTR(我的列),INSTR(我的列,)+6,
INSTR(我的列“”)-INSTR(我的列“”)-5)作为正文
从我的桌子上

数据,如…
。。。你从来没有给我们看数据,他有HTML标签。这就是为什么他们没有出现。我对它进行了编辑,以显示标记并使问题更有意义。heySome在表中有(null)值,是否有任何方法可以过滤查询以便不显示null值?Thanks使用一个公共表表达式执行与上面相同的操作,但使用trans标记<代码>温度为(选择[transcode]作为trans_提取)选择。。。WHERE trans_extracted=''仔细研究一下,如果你想不出来,就在上面再发一个问题。谢谢。谢谢你!