Oracle - SQL 개발자로부터 스크립트를 생성하는 방법
SQL Developer 툴(SQLPLUS 명령줄 인터페이스)을 통해 Oracle의 저장 프로시저 및 테이블의 스키마 스크립트를 작성하는 방법
SQL 개발자 -> 도구 -> 데이터베이스 내보내기...
오브젝트의 DDL을 표시하려면
select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OBJECT_OWNER')
from dual
/
를 들어, 는 DDL의 스크립트로 됩니다.emp
table.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_metadata
DDL을 사용하다 다른 으로는 '보다 낫다'의 하는 방법이 있습니다.dbms_metadata
DDL을 사용하다
예를 들어 테이블 목록을 가져오려면 다음과 같은 데이터 사전 보기를 사용할 수 있습니다.
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
'programing' 카테고리의 다른 글
JSON 피드에서 선택한 드롭다운 목록을 AngularJS로 채우려면 어떻게 해야 합니까? (0) | 2023.03.07 |
---|---|
Javascript에는 필수 vs .default가 필요합니다. (0) | 2023.03.07 |
Spring Reactor 웹 앱에서 일련의 작업을 수행하고 다음 작업을 완료하기 전에 하나의 작업을 완료하려면 어떻게 해야 합니까? (0) | 2023.03.07 |
AngularJS: ng-include에 각부하 스크립트를 작성하는 방법 (0) | 2023.03.07 |
Bootstrap for Angular와 Material for Angular의 조합에 의한 설계 (0) | 2023.03.07 |