2016-09-28 5 views
1

저는이 작업을 둘러 보았지만 손에 들고 있지만 도움이되지 않았습니다. 저는 주로 소프트웨어 개발 관점에서 데이터베이스에 대한 지식이있는 자바 전문가입니다. 필자는 DBA 기능에 대해 어느 정도 지식을 보유하고 있지만 수행 할 수는 없지만 좋은 솔루션을 제시 할 수는 없습니다.SQL Server와 Oracle에서 생성 된 응용 프로그램 데이터베이스를 비교하십시오.

제가하는 작업은 SQL Server와 Oracle에서 만든 데이터베이스를 응용 프로그램 설치 프로그램과 비교하는 것입니다.

SQL Server에서 스키마의 테이블 개수, 데이터 형식 및 인덱스가있는 각 테이블의 열과 같은 항목을 제공하는 일부 쿼리 (물론 온라인 검색)를 생각해 낼 수 있었다고 생각합니다. 제약 조건, 트리거 등 (해당 개수 포함)을 각 테이블에 대해 생성합니다. 누군가가 관심이 있다면 SQL을 제공 할 수 있습니다. 그러나 오라클은 더 까다로워 보입니다. 누군가가 도와 주거나 올바른 방향으로 나를 가르키면 감사 할 것입니다.

나는 다음과 같이 일도을 찾기 위해 노력하고 있어요 : 테이블의

  1. 번호 인덱스의
  2. 번호, (자신의 유형) 제약 조건을 생성는
  3. 번호 저장의 해당 테이블의 각 트리거 절차/기능

어떤 도움이 크게 감사 것입니다 만들어보기

  • 번호를 생성 디.

    감사합니다.

  • 답변

    0

    먼저 Java 코드 작성이 편한 경우 먼저이 비교 작업을 수행하기 위해 많은 SQL을 작성할 것이라고 확신하지 못합니다. JDBC는 이미 모든 테이블을 얻기 위해 getTables과 같은 메소드를 가진 DatabaseMetaData 클래스를 가지고있다. 이렇게하면 하나의 API를 사용할 수 있고 JDBC 드라이버를 작성한 사람들은 이미 사용중인 데이터베이스의 데이터 사전 테이블을 쿼리하기 위해 모든 코드를 작성했다는 사실을 활용할 수 있습니다. 이것은 또한 설치 프로그램이 만드는 객체가 응용 프로그램에서 인식되는 방식의 차이점에 초점을 맞출 수있게합니다.

    특정 SQL을 작성하려면 Oracle 데이터 사전 테이블을 사용하는 것이 매우 쉽습니다. 당신이 걱정할 것들은 패턴 [user|all|dba]_<<type of thing>>을 따르게 될 것입니다. [user|all|dba] 접두어는 사용자가 소유 한 개체 (user), 액세스 할 수있는 개체 (all) 또는 데이터베이스의 모든 개체 (dba) 중 어디에 해당하는지 나타냅니다. 일반 사용자는 잠재적으로 보안 문제가 있기 때문에 종종 dba보기에 액세스 할 수 없습니다. 일반적으로 액세스 권한이없는 개체는 존재하는지 사람들이 알기를 원하지 않습니다. 예제에서는 객체의 all 버전을 사용 하겠지만 나중에 수행 할 내용에 따라 alluser 또는 dba으로 변경할 수 있습니다.

    • all_tables에는 액세스 할 수있는 모든 테이블에 대한 정보가 표시됩니다. 응용 프로그램의 일부가 아닌 테이블에 액세스 할 수 있으므로 설치 프로그램이 접촉하는 스키마에 대해 owner에 필터를 추가하려고합니다.
    • all_indexes, all_constraintsall_triggers에는 색인, 제약 조건 및 트리거에 대한 정보가 표시됩니다.다시 말하지만, owner에 술어를 추가하여 자신이 관심있는 스키마를 제한 할 수 있습니다.
    • all_procedures은 프로 시저 및 기능에 대한 정보를 독립형 및 패키지로 보여줍니다.
    • all_views은 모든보기에 대한 정보를 표시합니다. 당신이 카운트에 정말 관심이 있다면

    , 당신은 단순히 object_type에 의해 all_objects에 가서 카운트 그룹화 할 수 있습니다. 저는 다양한 객체의 속성을보고 싶어하므로 다양한 객체 별보기로 가려고합니다.

    +0

    감사합니다. 저스틴에게 감사드립니다. 그것은 내가 찾고 있었던 것입니다. – Gauzy