2016-07-28 4 views
2

저는 IBM 환경, 특히 AS400 시스템 및 DB2 데이터베이스로 작업하고 있습니다.
다음 작업은 가능한 모든 파일을 PF 및 LF에서 SQL로 변환합니다 (예 : CREATE TABLE ... 및 CREATE VIEW ...).AS400 파일 - PF 및 LF를 SQL로 변환

내가 할 수없는 경우가 있을까요?
여러 레코드 형식 파일에 대해 알 수 없습니다. 사실입니까?

+0

FWIW 작업이 Cruikshanking 전화> 1.

here 최대 회원을위한 OUTFILE 검색 DDS에서 SQL로 변환하는 것은 change_을 위해 _change가됩니다. 특별한 목적이없는 변화의 도입은 변화를 일으키지 않은 것보다 문제를 경험할 가능성이 더 큽니다. 그러한 맹목적인 변화의 이점에 대해 야생 주장을하는 사람들이 있지만, 그러한 기름진 판매원과는 달리 경험을 통해서만 아는 사람은 멍청하다. – CRPence

답변

8

PC의 System i Navigator를 사용하여 서버에 연결하고 데이터베이스 및 스키마로 드릴 다운하십시오. 해당 라이브러리의 PF 또는 LF를 나열하려면 테이블 또는 뷰를 클릭하십시오 (가능하면 모두). 그런 다음 선택 항목을 마우스 오른쪽 단추로 클릭하고 'SQL 생성'을 선택하십시오. 'SQL 스크립트 실행'을 생성하도록 선택하는 것이 좋습니다.

결과는 선택한 모든 오브젝트에 대해 CREATE TABLE 또는 CREATE VIEW 문을 사용하는 SQL 스크립트가됩니다. 관련성이 가장 높은 LABEL 문도 열 속성에 포함됩니다. 스크립트를 PC의 .SQL 파일이나 네트워크 공유에 저장할 수 있습니다. 나는 대개 스크립트를 저장하는 대신 복사/붙여 넣기를 수행하지만, 줄 끝 (CR 및 LF)이 귀하의 경우 어떻게 생성되는지 이해하기 위해 실험하고 싶을 것입니다.

다양한 옵션을 검토하고 테스트 할 수 있습니다. 일부는 최종 목표에 더 적합 할 수 있습니다.

다중 포맷 LF의 경우, SQL이 완전하게 사용 가능해지면서 내가 사용 해본 시스템에서 사용되지는 않는다고 생각합니다. 좋은 SQL이 없으므로 자동화 된 방법은 없을 것입니다. 아마 누군가는 모호한 가능성을 안다.

질문에 System/36 환경이 관련된 경우 질문을 편집하여 나타냅니다. 수많은 추가 의견이 필요할 수 있습니다.

+0

굉장! 그런데 System/36은 없습니다! System Navigator에서 QSQGNDDL 명령을 사용하여 SQL 문을 작성합니까? – LppEdd

+1

@LppEdd 예. –

+2

@LppEdd, DDS에서 SQL DDL로 이동하는 것은 잘 문서화되어 있습니다. [IBM i 응용 프로그램을 데이터베이스에서 사용자 인터페이스까지 및 그 사이의 모든 항목을 현대화] (https://www.redbooks.ibm.com/abstracts/sg248185.html?Open)의 9 장을보십시오. 기본적으로이 오래된 Redbook [IBM eServer iSeries 어플리케이션 데이터 액세스 - 로드맵 초석]의 내용은 다음과 같습니다 (https://www.redbooks.ibm.com/abstracts/sg246393.html?Open) – Charles

3

예, 파일을 'SQL로 변환 할 수 없습니다.'
다중 형식 논리가 그러한 경우입니다. 설명 된 프로그램은 다른 프로그램입니다. API가 DDL을 생성 할 수없는 곳이있을 수 있습니다. IBM i를 다른 것으로 교체하는 것처럼 들립니다. DB2 for i는 DB2 LUW와 다소 다른 언어이며 MS SQL Server 또는 MySQL과 상당히 다릅니다. 데이터가 원하는대로 전달되는지 확인하기 위해 중요한 테스트가 필요할 것입니다.

1

예 파일에 둘 이상의 구성원이있는 경우가 하나입니다. 최대 멤버가 1보다 큰 pf는 문제를 일으킬 수 있습니다. dspfd 명령을 사용하여 여러 구성원이있는 모든 PF 목록을 작성할 수 있습니다.

dspfd file(*all/*allusr) type(*mbr) output(*outfile) outfile(mylib/myfile) 

에서 이러한 변화를 만드는에서 특정 알려진 값이없는 경우에 대한 추가 정보를 원하시면, 우리는 내가

+0

다중 멤버 PF는 다음과 같습니다. 거의 직접 SQL 테이블로 변환 할 수 있지만, 멤버 데이터를 식별하는 열 또는 두 개를 추가하는 것과 함께 약간의 프로그래밍 변경이 필요할 수 있습니다. 또한 잘 재정 지원 된 사이트의 경우, DB2 Multisystem은 구성원을 파티션으로 변환 할 수 있습니다. – user2338816

+0

@ user2338816 열을 추가하면 키가 GIGO 시스템을 제 위치에 유지할 수 있습니다. 그러나 DDL 테이블로 이식하는 V7.2에서는 사람의 힘이 낭비됩니다. http://powerwire.eu/exclusive-ibm-i-7-2-delivers-17x-performance-gain-with-zero-change – danny117

+0

사실, SQE가 진화함에 따라 Query/400 또는 OPNQRYF , 등, 구제를 볼 수 있습니다. 그것이이 질문과 어떤 관련이 있는지 확실하지 않습니다. DDL 로의 전환은 두 가지 희망 영역이 페이딩되는 영역을 훨씬 능가합니다. – user2338816