【问题标题】:Extracting XML contents from xmltype从 xmltype 中提取 XML 内容
【发布时间】:2014-05-27 16:26:47
【问题描述】:

我在通过 OCI 使用以下 SQL 查询时收到错误“ORA-00911:无效字符”

SELECT EXTRACT(FTAG, 'ptag').GETCLOBVAL() FROM SAMPLECS WHERE INDEXID=1;

此查询适用于 SQLPlus。

谁能帮我解决这个问题?

【问题讨论】:

  • "通过 OCI 使用 ... 查询" - 准确度如何;您是否在 OCI 调用中包含了语句终止分号?显示您用于执行此操作的实际 cdoe 会很有帮助。
  • Alex,非常感谢,你让我眨了眨眼睛,我已经通过了。非常感谢。

标签: xml oracle11g


【解决方案1】:

当您通过 OCI(或 JDBC,或其他地方)执行 SQL 语句时,它不应有尾随分号。

SELECT EXTRACT(FTAG, 'ptag').GETCLOBVAL() FROM SAMPLECS WHERE INDEXID=1

分号是语句分隔符,不是语句本身的一部分。 SQL*Plus、SQL Developer、Toad 和其他客户端使用它来允许多个语句一起运行,并分隔每个单独的语句。

SQL Fiddle 允许您选择在架构构建中有任何 PL/SQL 代码时有用的分隔符。其他客户也是如此,但不那么明显。在 SQL*Plus 中,您可以使用 set sqlterminator 将默认分号更改为其他内容。我不确定您是否有任何理由这样做,除非您获得了一个运行脚本,该脚本已经出于某种原因使用了不同的字符。

【讨论】:

  • 最后的分号是错误的。看完你的回复我就知道了。这些信息非常有用。非常感谢。
  • @SenthilKumarMathivanan - 是的,我只是将之前的评论暗示的内容正式化,作为答案(因为这是一个问答网站!),并保持整洁。
猜你喜欢
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多