위치 지정 파일에 데이터를 쓰고 싶습니다. 이전에 파일에 기록되지 않은 데이터 만 기록됩니다. 데이터가 이전에 쓰여졌는지 여부를 결정하는 컬럼이 테이블에 있습니다.위치 지정 파일에 전송되지 않은 데이터 덤핑
필자의 경우 필드 길이가 80이지만 데이터 길이가 30 인 경우 나머지 공간은 공백으로 채워집니다. 예 :
----------------------------------------
| Name | SSN | Integrated |
----------------------------------------
| Doe | 453214 | Y |
| John | 1234567890 | N |
| Scarlett | 123 | N |
----------------------------------------
첫 번째 레코드가 이전 파일로 전송/기록되었습니다. 따라서 다음 파일에는 전송되지 않습니다. 이름의 길이는 80 자로 고정됩니다. 따라서 이름이 80 자 미만이면 나머지 공백이 공백으로 채워집니다. 이런 식으로 보일거야. 다른 필드에 대해서도 마찬가지입니다.
Name SSN
John 1234567890
Scarlett 123
어떻게하면됩니까? 미리 감사드립니다. Iam은 오라클 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;
Thanks..this 난 그냥 :-) 필요 무엇 :이 경우, 당신은 단지이
DECLARE
CREATE PROCEDURE my_procedure_name AS
로 변경해야합니다, 당신이 패키지의 일부가되고 싶지 않아 가정 – Jaanna