我想将数据写入位置文件。只有以前没有写入文件的数据才会被写入。显然,表中有一个列来确定数据是否之前写入过。
就我而言,假设字段长度为 80,但数据长度为 30,则其余空间将被空格填充。例如,
----------------------------------------
| Name | SSN | Integrated |
----------------------------------------
| Doe | 453214 | Y |
| John | 1234567890 | N |
| Scarlett | 123 | N |
----------------------------------------
第一条记录已传输/写入先前的文件。因此,它不会在下一个文件中传输。名称的长度固定为 80 个字符。因此,如果名称少于 80 个字符,则其余空间将由空格填充。它看起来像这样。其他领域也是如此
Name SSN
John 1234567890
Scarlett 123
我该怎么做?提前致谢。我正在使用 oracle 11g。
编辑
好的,我可以编写代码。但是,我想将此代码称为可以在 dbms_jobs 中使用的过程。问题是我不知道如何编写程序。
DECLARE
v_file UTL_FILE.file_type;
BEGIN
v_file := UTL_FILE.fopen('DIR_VR_AD_INTEGRATION', 'HRMtoAD1_'||sysdate, 'w', 32767);
FOR x IN (select * from (select RPAD(user_id, 7, ' ') || ' ' || RPAD(pid_company_id, 10, ' ') str from arc_hrvr.vr_ad_integration where integrated = 'N') str where rownum <= 3 order by rownum)
LOOP
BEGIN
UTL_FILE.put_line(v_file, x.str);
END;
END LOOP;
UTL_FILE.fflush(v_file);
UTL_FILE.fclose(v_file);
END;