2

我们正在实现一个在线界面来连接到 ORACLE DB 并允许用户在线进行查询。我们在 oracle 中遇到了 XMLTYPE 数据类型,并且遇到了困难。要从其中包含 XMLTYPE 的表中检索 DATA,普通的“select * from table_name”将不起作用,但我们需要使用 xmltype.getclobval(column_name) 调用该特定列。如果我们处理来自后端的查询,这将是一个不错的选择,但在这里我们允许用户自己进行查询。在这种情况下,用户只需在该表上执行 select *,但我仍然需要能够获取数据并显示,无论它是否具有 XMLTYPE。有没有办法使用本机 PHP Oracle 驱动程序本身来做到这一点?或者我们是否需要编写一个插件来处理这个问题而不通知用户我们正在应用 xmltype。

请在这方面帮助我。

谢谢,拉利斯

4

1 回答 1

0

我不熟悉 PHP,但从 OCI 方面来看,您必须将 XMLTYPE 处理为名为“SYS.XMLTYPE”的自定义用户定义类型。如果您想将 if 用作真正的 XML,您还需要一个库 libxml.so。由于某些未知原因,这不是 Oracle Instant 客户端的一部分。

尝试 grep 字符串“SYS.XMLTYPE”的 PHP 驱动程序源。

也许您可以简单地使用 CLOB 数据类型作为 XMLTYPE 列的占位符,Oracle 将为您执行数据转换。就像您对数字列使用 VARCHAR 占位符一样。

于 2013-05-17T19:31:38.573 回答