2012-01-06 5 views
1

Windows 7을 통해 Oracle Forms 및 Oracle 보고서를 6i에서 10g으로 마이그레이션하고 있습니다. 그러나 새 PC를 Windows 7로 변경하면 사용자가 여러 보고서와 CSV를 생성하는 몇 가지 양식을보고했습니다 파일에서 불완전한 데이터 나 파일을 비어있는 레코드 (헤더 만)로 생성했습니다.CSV 파일 작성시 WebUtil의 CLIENT_TEXT_IO.PUT_LINE

우리는이 같은 BETWEEN CLAUSE를 사용할 때 우리가 알아낼 주위 상대 :

SELECT id, name, lastname FROM employee WHERE date_start BETWEEN :P_INIT_DATE AND :P_FINAL DATE 

결과 파일은 빈 또는 일치하지 않는 날짜와 레코드, 그래서 우리는 윈도우 7 날짜 이해와 사이에 문제가 있었다 추론 오라클 데이터베이스 또는 우리가 아직 모르는 무엇이든간에. 이 모든 것을 이중 변환 TO_DATE(TO_CHAR(:P_DATE))으로 해결할 수 있지만 지금은 CLIENT_TEXT_IO.PUT_LINE을 사용하여 10g 형태의 CSV 파일을 생성하고자 할 때 이상한 동작을 실험하고 있습니다. Webutil은 파일 쓰기를 시작하지만 특정 행에 도달하면 CSV 파일의 beginnig에서 시작하는 동일한 파일을 다시 덮어 씁니다. 그래서 Excel에서 파일을 열면 X 마지막 줄만 보입니다.

정말이 문제를 해결하는 데 도움이 될 것입니다. 구체적인 질문은 없습니다. 우리가 가지고있는 문제에 대해 설명하고 도움을 청합니다.

+0

잘 모름 -하지만 도움이 될 수 있습니다. https://forums.oracle.com/forums/thread.jspa?threadID=566110 –

답변

0

CLIENT_TEXT_IO는 파일에 쓰기 전에 기록을 캐시합니다. 나는 당신이 인용하는 범위에서 몇 가지 서로 다른 문지방을 보았습니다. 양식 코드가 SYNCHRONIZE를 발행하면; 이렇게 많은 레코드가 기록 될 때마다 캐시는 각각 SYNCHRONIZE가 플러시됩니다. 나는 지금 큰 파일을 쓰고 있지는 않지만, SYNCHRONIZE 당 100 개의 레코드가 잘 작동했다. 신중하게 타이밍을 확인하십시오. SYNCHRONIZE 당 레코드 수가 너무 적을 수 있습니다. 필자가 본 숫자는 상점마다 다르므로 레코드 수와 관련이 없지만 캐시에 몇 바이트를 넣었는지 내기해야합니다.