下面给出了我写的把数据拷贝到txt文件中的程序
declare
empsfile utl_file.file_type;
cursor empscur is
select * from newemp;
begin
empsfile := utl_file.fopen('DIPRJDIR','EMPS.TXT','W');
for rec in empscur
loop
utl_file.put_line(empsfile,rec.EMPNO||rec.ENAME||rec.JOB||rec.MGR||rec.HIREDATE||rec.SAL||rec.COMM||rec.DEPTNO);
end loop;
UTL_FILE.FCLOSE(empsfile );
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE( 'ERROR -->' || SQLERRM);
END;
/上述程序的输出为
7839KING PRESIDENT017-NOV-815000010
7698BLAKE MANAGER 783901-MAY-812850.5.530
7782CLARK MANAGER 783909-JUN-812450010
7566JONES MANAGER 783902-APR-812975020
7654MARTIN SALESMAN 769828-SEP-811250140030
7499ALLEN SALESMAN 769820-FEB-81160030030
7844TURNER SALESMAN 769808-SEP-811500030
7900JAMES CLERK 769803-DEC-81950030
7521WARD SALESMAN 769822-FEB-81125050030
7902FORD ANALYST 756603-DEC-813000020
7369SMITH CLERK 790217-DEC-80800020
7788SCOTT ANALYST 756609-DEC-823000020
7876ADAMS CLERK 778812-JAN-831100020
7934MILLER CLERK 778223-JAN-821300010现在我的问题是,我想根据上面字段的数据类型来显示空间,例如假设ENAME VARCHAR2(10),那么如果数据中的name是6字段,那么我必须显示4个空格,请在这方面帮我。
发布于 2012-05-31 16:00:07
LPAD函数可以帮助您吗?
utl_file.put_line(empsfile,rec.EMPNO||LPAD(rec.ENAME,10,' ')||rec.JOB||rec.MGR||rec.HIREDATE||rec.SAL||rec.COMM||rec.DEPTNO);https://stackoverflow.com/questions/10829289
复制相似问题