XMLType视图列无法识别

时间:2013-08-08 15:03:02

标签: sql xml oracle11g oracleforms

在我将6i表单移植到11g之前(作为现代化程序的一部分)我还在测试添加一项新功能,这需要创建一个包含XML的文本文档。我在底层数据库(9.2.0.1.0)中创建了一个XMLType视图,以XML格式显示信息。 我试图使用TEXT_IO内置表单(我知道我需要在11g中用WebUtils CLIENT_TEST_IO替换它)

无论如何,这是我写的WHEN-BUTTON_PRESSED触发器代码,但它不会编译。

在Win7 32位(VMWare虚拟机)上运行的Forms Builder 11.1.2.0.0。

BEGIN
 DECLARE
 IN_FILE TEXT_IO.FILE_TYPE;
 XMLDOC VARCHAR2(4000);
 CURSOR C IS SELECT X.SYS_NC_ROWINFO$.GETSTRINGVAL() FROM SS_CDRS_EXPORT_COMP_XML2 X;
 BEGIN
  IN_FILE := TEXT_IO.FOPEN('C:\CDRSCOMP.XML','W'); 
  FOR C1 IN C LOOP
   TEXT_IO.PUT_LINE(IN_FILE, C1.OBJECT_VALUE.GETSTRINGVAL());
   NULL;
  END LOOP;
  TEXT_IO.FCLOSE(IN_FILE);
  EXCEPTION
  WHEN Others THEN
   NULL;
  TEXT_IO.FCLOSE(IN_FILE);
 END;
END;

它给出错误:

no column 'SYS_NC_ROWINFO$' in table

运行声明:

SELECT X.SYS_NC_ROWINFO$.GETSTRINGVAL() FROM SS_CDRS_EXPORT_COMP_XML2 X;

在SQLPlus(11.1.0.7.0)中,它工作正常并返回行。

1 个答案:

答案 0 :(得分:0)

解决。我将视图更改为

create or replace VIEW SS_CDRS_EXPORT_COMP_XML AS
select 
XMLELEMENT("CM_DATA",
 XMLFOREST(TRIM(V.COMPNAME) AS COMPANYNAME, 
 ....
 ))
AS "RESULT"

FROM v;

按钮中的行按代码为..

CURSOR C IS SELECT X.RESULT.GETSTRINGVAL() FROM SS_CDRS_EXPORT_COMP_XML X;