0

我正在创建一个类型,我想在其中使用 utl_file 包。不幸的是,我有一条消息:

MEMBER FUNCTION draw(fichier utl_file.file_type) RETURN NUMBER,

PLS-00201:identifier utl_file.file_type must be declared

有人可能会说我需要将 utl_file 包上的执行权限授予用户,但这不是这里的解决方案,因为用户已经拥有权限,因为我可以在我的包中使用 utl_file

谢谢您的回答

4

3 回答 3

1

查看 PL/SQL 对象类型的文档。在“方法”下,它指出,“(参数的)数据类型可以是任何 Oracle 类型,除了那些不允许用于属性的类型”。因此不允许的其他内容包括在 PL/SQL 包中定义的类型,例如 UTL_FILE.FILE_TYPE。

分享和享受。

于 2013-07-16T16:28:17.273 回答
0

--声明实用程序文件类型

V_FILE_ID_OUT := UTL_FILE.FILE_TYPE;

-- 在实用程序中存储文件打开选项

V_FILE_ID_OUT :=
         UTL_FILE.FOPEN ('/path/',
                         filename,
                         'W'
                        );

--将您的消息写入文件

UTL_FILE.PUT_LINE (V_FILE_ID_OUT, 'message');

--关闭实用程序选项

UTL_FILE.FCLOSE (V_FILE_ID_OUT);
于 2015-08-25T10:35:11.653 回答
-1

你确定它是PLSQL吗?这不是创建函数的语法。尝试这个:

CREATE OR REPLACE FUNCTION draw (fichier utl_file.file_type) RETURN NUMBER
IS
    A NUMBER;
    --declare your variables
BEGIN
    A:=1;
    --code your process
RETURN A; --your return value
END;
/
于 2013-07-16T16:20:56.730 回答