programing

Oracle - SQL 개발자로부터 스크립트를 생성하는 방법

goodsources 2023. 3. 7. 21:22
반응형

Oracle - SQL 개발자로부터 스크립트를 생성하는 방법

SQL Developer 툴(SQLPLUS 명령줄 인터페이스)을 통해 Oracle의 저장 프로시저 및 테이블의 스키마 스크립트를 작성하는 방법

SQL 개발자 -> 도구 -> 데이터베이스 내보내기...

오브젝트의 DDL을 표시하려면

select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OBJECT_OWNER') 
  from dual
/

를 들어, 는 DDL의 스크립트로 됩니다.emptable.syslog를 클릭합니다.

select dbms_metadata.get_ddl('TABLE','EMP','HR') 
  from dual
/

때 '어느 정도'를 해야 할 .long포맷을 지정합니다.는, 「」에 액세스 할 .dba_source, user_source, all_source를 참조할 수 있습니다.개체 이름과 유형을 쿼리하여 저장된 코드를 확인할 수 있습니다.

이 방법은 효과가 있었습니다.

  • SQL Developer에서 스크립트를 생성할 대상 개체(테이블 이름)를 마우스 오른쪽 버튼으로 클릭합니다.
  • [ Quick DLL ]> [ Save To File ]를 선택합니다.
  • 그런 다음 create 문을 외부 sql 파일에 씁니다.

여러 개체를 동시에 강조 표시할 수도 있으므로 데이터베이스 내의 모든 테이블에 대해 create 문을 포함하는 하나의 스크립트를 생성할 수 있습니다.

Oracle에서는 테이블 및 저장 프로시저를 포함한 모든 데이터베이스 개체에 대한 정보를 포함하는 위치를 데이터 사전이라고 합니다.데이터베이스를 정의하는 메타데이터에 액세스할 수 있는 보기 모음입니다. 목록을 한 후 Dictionary에서 사용할 수 있는 할 수 .dbms_metadataDDL을 사용하다 다른 으로는 '보다 낫다'의 하는 방법이 있습니다.dbms_metadataDDL을 사용하다

예를 들어 테이블 목록을 가져오려면 다음과 같은 데이터 사전 보기를 사용할 수 있습니다.

  • user_tables한 모든 이 포함되어 있습니다.
  • all_tables할 수 있는 을 나타냅니다.
  • 기타 등등...

dbms_module 패키지를 사용합니다(여기서 설명하겠습니다.

이 방법은 효과가 있었습니다.

PL SQL 개발자 -> 도구 -> 사용자 객체 내보내기

체크박스를 선택합니다.권한 포함 및 스토리지 포함

파일명을 선택합니다.[ Export ]를 클릭합니다.

나중에 생성된 내보내기 파일을 사용하여 다른 스키마에 테이블을 만들 수 있습니다.

스텝 1select * from <tablename>;

스텝 2. 출력(t.e 데이터)을 오른쪽 클릭하여 마지막 옵션 내보내기로 이동하면 확장자가 나타납니다. 그런 다음 필요한 확장자를 클릭하면 데이터를 포함한 새로운 파일이 나타납니다.

기본 대답은 'dbms_metadata 패키지 사용'인 것으로 보입니다.Axuiliary 질문은 다음과 같습니다.

그러나 모든 테이블에 대해 한 번에 스크립트를 생성하려면 어떻게 해야 합니까?

그 답은 시스템 카탈로그에서 모든 테이블의 이름과 소유자를 확인하는 것입니다.

SELECT dbms_metadata.get_ddl('TABLE', s.tabname, s.tabowner)
  FROM system_catalog_describing_tables AS s
 WHERE ...any conditions that are needed...

Oracle에 대해 잘 모르기 때문에 시스템 카탈로그를 알 수 없습니다.인포믹스에서요, 제가 아는 바로는요, 만약 그 사건에서dbms_metadata.get_ddl쿼리는 다음과 같습니다.

SELECT dbms_metadata.get_ddl('TABLE', s.tabname, s.owner)
  FROM "informix".systables AS s
 WHERE tabid >= 100 AND tabtype = 'T';

Informix에서는 100 미만의 탭 ID가 시스템 카탈로그용으로 예약되어 있으며, 올바른 '탭 타입'이 필요하기 때문에 비테이블(뷰, 동의어, 시퀀스 및 기타 일부 난해한 것)은 제외됩니다.

DMBS_METADATA에 대해서는 몰랐습니다만, 당신의 답변으로 인해 Oracle 사용자가 소유한 모든 오브젝트를 스크립팅하는 유틸리티를 작성하게 되었습니다.

Oracle SQL Developer > View > DBA > 연결 선택 > Expand > Security > Users > User > User 오른쪽 클릭 > Create like > Fill in fields > Copy SQL script > Close

사용자에게 객체 권한이 있는 경우 이 작업도 수행합니다.

Oracle SQL Developer > View > DBA > 접속 선택 > [ Expand ]> [ Security ]> [ Users ]> [ User ]> [ Object Privs ]> [ Select all data ]> [ 오른쪽 클릭 ]> [ Export as text file ]를 선택합니다.

해당 텍스트 파일을 편집하여 사용자에게 개체 권한을 부여합니다.

언급URL : https://stackoverflow.com/questions/1564347/oracle-how-to-generate-script-from-sql-developer

반응형