适用于Oracle Cast操作的文档

时间:2014-03-04 18:35:40

标签: json oracle casting

我正致力于让pljson与oracle 9i合作。解析的lexor将所有json内容拉到数组(它是一个包含基类型,对象和数组的嵌套表的UDT),对象(它是一个包含基类型,对象和嵌套表的UDT)和基类型。我已经确认lexor正在正确转换对象。但是,当我去打印lexor发现的类型时,我遇到了错误。

嵌套表中的记录似乎存在问题,表中的第二条记录(以及任何后续记录)显示在列表中但是当我尝试打印整个表时,第二条记录的对象似乎是空值。

我怀疑问题是oracle 10G vs oracle 9i中的转换或内存管理(因为要打印一个对象,它必须从其类型转换为JSON值)。我没有看到oracle版本中的任何更改会导致嵌套表中的第二个对象的对象为null。

任何人都可以解释9i和10G的差异,这些差异可能导致我的嵌套表在投放时第二行(及以后)有空记录吗?

我的所有代码工作都在11G中进行了测试(该程序的文档表明应该支持10G ..我对核心库所做的唯一更改是在lexor中添加类似sudo函数的正则函数支持解析)..

编辑: 所以函数实际上是对类型的引用。由于某种原因,开发人员将其命名为cast,并且它引用了sys.anydata类型的变量..

编辑: 我已经将错误缩小到使用sys.anydata中的getobject加载对象。但是我没有看到Oracle 10G发生任何变化。我不确定get对象有什么问题..它适用于第一个对象而不是第二个对象......

编辑: 我没有做过测试来证实这一点,所以它只是猜想,如果有人可以为它提供文档我会接受那里的答案..但我怀疑我遇到的问题是因为s​​ys.anydata.convertobject没有隐式转换集合9i ..我认为这个行为在10g中发生了变化。意思是我需要调用create anydata并用convertobject和convertcollection填充它,只要我有集合的对象..

0 个答案:

没有答案