GET_LINE ProcedureThis procedure reads text from the open file identified by the file handle and places the text in the output buffer parameter. Text is read up to, but not including, the line terminator, or up to the end of the file.If the line does not fit in the buffer, then a VALUE_ERROR exception is raised. If no text was read due to end of file, then the NO_DATA_FOUND exception is raised.Because the line terminator character is not read into the buffer, reading blank lines returns empty strings.使用 NO_DATA_FOUND 异常
解决方案 »
- oracle中如何将NULL插入到DateTime类型的字段中。
- 请教个小问题
- 简单SQL问题
- 一个关于job的问题
- 在PL/SQL中重新命名表报错:不允许指定表的所有者名
- 如何重建分区索引?
- 郁闷!安装oracle后所有操作都只能在系统的本机帐户上进行,在域的帐号上什么都不能作!
- 表不存在?明明有这个表呀?多谢!
- oracle查询记录数大于2的记录
- sql loader导入数据如何把上传文件夹名作为一列插入,文件夹里是需要的txt文件
- oracle安装问题!急!
- 在一个更新触发器中,如何知道那些列被更新了?在sqlserver中可以采用update(column),不知道在oracle中如何解决?
(FPATH IN STRING,FNAME IN STRING,MAX_NUM IN NUMBER)
IS
FILE_HANDLE UTL_FILE.FILE_TYPE;
TEXT_BUFFER STRING(1000);
LINE_NUM NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('INPUT PATH='||FPATH);
DBMS_OUTPUT.PUT_LINE('INPUT FILENAME='||FNAME);
LINE_NUM :=0;
BEGIN
FILE_HANDLE := UTL_FILE.FOPEN(FPATH,FNAME,'R',MAX_NUM);
LOOP
LINE_NUM:= LINE_NUM + 1;
UTL_FILE.GET_LINE(FILE_HANDLE,TEXT_BUFFER);
DBMS_OUTPUT.PUT_LINE('LINE'||LINE_NUM||' : '||TEXT_BUFFER);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN;
WHEN UTL_FILE.INVALID_PATH THEN
DBMS_OUTPUT.PUT_LINE('INVALID PATH');
WHEN UTL_FILE.INVALID_MODE THEN
DBMS_OUTPUT.PUT_LINE('INVALID MODE');
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
DBMS_OUTPUT.PUT_LINE('INVALID FILEHANDLE');
WHEN UTL_FILE.INVALID_OPERATION THEN
DBMS_OUTPUT.PUT_LINE('INVALID OPERATION');
WHEN UTL_FILE.READ_ERROR THEN
DBMS_OUTPUT.PUT_LINE('READ ERROR');
WHEN UTL_FILE.WRITE_ERROR THEN
DBMS_OUTPUT.PUT_LINE('WRITE ERROR');
WHEN UTL_FILE.INTERNAL_ERROR THEN
DBMS_OUTPUT.PUT_LINE('INTERNAL ERROR');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('OTHER ERROR='||SQLERRM);
END pReadFileTest;
[email protected]
谢谢