在PHP中处理ORACLE的XMLTYPE数据

时间:2013-05-17 09:27:31

标签: php oracle xmltype

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

请在这方面帮助我。

谢谢, Lalith

1 个答案:

答案 0 :(得分:0)

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

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

也许您只需使用CLOB数据类型作为XMLTYPE列的占位符,Oracle就会为您执行数据转换。与将VARCHAR占位符用于数字列的方式相同。