2011-08-04 4 views
1

다음 COBOL 파일이 있습니다 : .DAT, .IDX 및 fd (파일 정의) 파일. 우리는 COBOL Net Express from MicroFocus을 사용하고 있습니다.Cobol fd 파일에서 MsSql 테이블 만들기

  1. 처음에는이 Cobol 파일에서 MsSql 테이블을 만들고 싶습니다. 파일 정의에는 다음 내용이 포함되어 있습니다.

    FD PREGLA DATA RECORD는 FPG-REC입니다.
    01 FPG-REC.
    02 FPG-STA PIC X (01).
    02 FPG-KEY.
    03 FPG-FRM PIC X (02).
    03 FPG-ODD PIC X (02).
    03 FPG-DOK PIC 9 (08) 이진.
    02 FPG-POZ PIC 9 (06) 이진.
    02 FPG-PRM.
    03 FPG-IND PIC 9 (01) 년 10 회 발생. ......... 그래서


는 마이크로 소프트 SQL 서버 2008에이 파일을 가져올 수 있습니까? 우리는 또한 SQL 서버 관리 스튜디오를 사용하고 있습니다. 이제는 SQL Server 가져 오기 및 내보내기 마법사를 사용해 보았지만 이러한 종류의 파일은 가져올 수 없습니다.

나는 또한 NET Express에서 보았지만 아무런 운이 없었습니다. COBOL fd에서 SQL 테이블을 정의 할 수 있습니까?

답변

2

COBOL 레코드 레이아웃에서 SQL 테이블 정의를 작성하는 것은 항상 직선 프로세스입니다 (다른 방법은 꽤 간단합니다).

문제는 다양한 오버레이 (COBOL REDEFINES) 및 비정규 화 (COBOL OCCURS)에서 COBOL 레코드 레이아웃이 상당히 복잡 할 수 있다는 것입니다. 꽤 많이 은 복잡한 COBOL 레코드를 SQL 테이블 레이아웃으로 매핑하는 프로세스를 자동화하려는 대부분의 시도를 무효화합니다.

데이터 유형 매핑은 약간의 어려움 일 수 있습니다. Net Express 파일은 이 ASCII 또는 EBCDIC (IBM 메인 프레임) 기반 환경을 목표로 작성 될 수 있습니다. 파일 이 EBCDIC로 인코딩 된 경우 파일에 문자/숫자 혼합 데이터가 포함되어 있기 때문에 대부분 사용자 지정 변환 소프트웨어를 작성해야합니다 (이 유형의 변환을 자동화하거나 부분 자동화 할 수 있지만 그들과 친숙하지 않다.).

.DAT 파일 중 하나를 간단한 텍스트 편집기 (예 : 메모장)로보고보십시오. 문자 데이터를 읽을 수있는 경우 ASCII 기반입니다. 추가 변환 작업없이 데이터를로드 할 수있는 싸울 기회가 있습니다 ( ). 유사한 길이 CHAR 데이터 (즉 PIC X(4)CHAR(4)가된다) PIC X 무언가이다

COBOL 필드 정의는 문자 데이터를 포함하고 는 SQL로 직접 변환.

BINARY으로 정의 된 COBOL 필드 정의는 INTEGER으로 변환됩니다. 숫자 의 길이가 길거나 짧을 지 여부는 숫자에 따라 다릅니다.예를 들어, PIC S9(8) BINARY은 을 지정합니다. 부호있는 2 진 정수 8 자리 - 이는 4 바이트를 차지합니다. 반면에 PIC S9(4) BINARY은 4 자리이므로 2 바이트 (짧은 정수)를 차지합니다.

또 다른 일반적인 COBOL 필드 정의는 PACKED-DECIMAL 또는 COMP-3입니다. 이 필드 은 SQL DECIMAL 데이터 유형으로 변환 될 수 있습니다.

SimoTime은 여러 COBOL 필드 정의에 대한 개요를 제공합니다. 적절한 SQL 데이터 형식 으로 변환 작업을 수행하면 안됩니다.

참고 1 : 질문에 제공된 COBOL 레코드 레이아웃 단편에서 OCCURS 절을 볼 수 있습니다. 이로 인해 결과 테이블은 도 첫 번째 정규화 된 형식이 아닙니다. 이 테이블은 데이터베이스 환경에서 관리하기가 정말 어려울 수 있습니다.

참고 2 : 유용한 데이터는 .DAT 파일에 있습니다. 레코드 레이아웃은 COBOL 레코드 정의와 일치합니다. .IDX 파일에는 읽기/쓰기시 MicroFocus에서 사용하는 색인 ​​데이터가 들어 있습니다. 당신은 이것을 무시할 수 있습니다.

+0

답장 보내 주셔서 감사합니다. 내가 COBOL fd에서 SQL 테이블 정의를 얻는 것이 가능한지 물어 보았던 op에서 실수를했습니다. 그런 다음 이미 알고있었습니다. 내가 언급하지 않은 더 큰 문제는 약 100 개의 파일이 MsSql rdb로 변환된다는 것입니다. 나는이 종류의 자동화 된 변환을 위해 존재하는 모든 도구가 판매용이며 프리웨어가 존재하지 않는다는 것을 알아 냈습니다. 그러나 몇 가지 COBOL 필드 정의의 개요에 대한 링크를 제공해 주셔서 다시 한 번 감사드립니다. 직접 작성해야한다면, 좋은 참고 자료가 될 것입니다. –

+0

계속 : First Normal 형식이 아닌 경우 관리가 어려울 수도 있다고 말했습니까? COBOL에서 MsSql rdb 로의 자동 변환을위한 이러한 상용 도구가 1,2,3 또는 4 표준 형식에 있어야합니까? –

+0

@Jernej 정규화되지 않은 테이블은 대부분의 RDBMS에서 생성, 쿼리 및 업데이트 할 수 있습니다. 정규화는 DBMS에 대한 실제 요구 사항 *이 아닙니다. 데이터베이스가 제대로 정규화되지 않으면 응용 프로그램에 장기간의 슬픔이 생길 수 있습니다. [이 질문에 대한 답변] (http://stackoverflow.com/questions/246701/what-is-normalisation-or-normalization-why-is-it-important)에 대한 답변을보고 정상화 이유를 확인하십시오. 좋은 아이디어. 파일 시스템을 통해 관리되는 데이터를 RDBMS로 변환하는 것은 일반적으로 많은 분석이 필요하며 "기성품"변환 도구로 쉽게 자동화되지 않습니다. – NealB