尝试写入文件时出错

时间:2015-05-22 14:46:03

标签: sql oracle plsql utl-file

我有以下程序,它应该将一些数据写入文件。

CREATE OR REPLACE PROCEDURE export_to_xml
IS
  F UTL_FILE.FILE_TYPE;
  CURSOR c_cursor IS
    SELECT x FROM (select xmlelement( "user", xmlforest( uname, action, time ) ) as x from table_log);
  action c_cursor%ROWTYPE;
BEGIN
  F := UTL_FILE.FOPEN('XML', 'log.xml', 'w');
  OPEN c_cursor;
  LOOP
    EXIT WHEN c_cursor%NOTFOUND;
    FETCH c_cursor INTO action;
    UTL_FILE.PUT(F, action.x);
    UTL_FILE.NEW_LINE(F);
  END LOOP;
  CLOSE c_cursor;
  UTL_FILE.FCLOSE(F);
END;
/

但是当我尝试编译过程时出现以下错误

PLS-00306: wrong number or types of arguments in call to 'PUT'

任何人都知道问题的原因是什么?我知道它来自UTL_FILE.PUT(F, action.x);,但我没有看到任何其他方式来引用光标。

1 个答案:

答案 0 :(得分:1)

HTMLInputElement.defaultValue返回XMLType。您可以使用xmlelement将其转换为getStirngVal(),以便将其与varchar一起使用:

put