[SQL] 어떻게 오라클의 기존 테이블에 (또는 GET)는 DDL 스크립트를 생성 할 수 있습니까? I가이 하이브에서 그들을 다시 작성
SQL어떻게 오라클의 기존 테이블에 (또는 GET)는 DDL 스크립트를 생성 할 수 있습니까? I가이 하이브에서 그들을 다시 작성
어떻게 오라클의 기존 테이블에 DDL 스크립트를 생성 할 수 있습니까? 내가 하이브로 Oracle 테이블에 존재하는 일부 테이블을 다시 만들 필요가 어디 프로젝트를 진행하고있다.
해결법
-
==============================
1.당신의 SQL 클라이언트가이 기능을 지원하지 않는 경우에, 당신은 당신의 데이터베이스에있는 거의 모든 소스를 얻기 위해 DBMS_METADATA 패키지를 사용할 수 있습니다 :
당신의 SQL 클라이언트가이 기능을 지원하지 않는 경우에, 당신은 당신의 데이터베이스에있는 거의 모든 소스를 얻기 위해 DBMS_METADATA 패키지를 사용할 수 있습니다 :
이 같은 테이블 사용 일 경우 :
select dbms_metadata.get_ddl('TABLE', 'YOUR_TABLE_NAME') from dual;
또한 한 번에 모든 테이블에 대해이 작업을 수행 할 수 있습니다
select dbms_metadata.get_ddl('TABLE', table_name) from user_tables;
그리고 SQL 스크립트에 출력을 스풀.
자세한 내용은 사용 설명서에 있습니다 http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_metada.htm
-
==============================
2.그냥 @의 a_horse_with_no_name의 대답에 약간의 확장. DBMS_METADATA를 사용하면 제대로 출력을 얻기 위해 SQL * 플러스의 형식 알아서해야 할 수도 있습니다.
그냥 @의 a_horse_with_no_name의 대답에 약간의 확장. DBMS_METADATA를 사용하면 제대로 출력을 얻기 위해 SQL * 플러스의 형식 알아서해야 할 수도 있습니다.
예를 들어, 나는 SCOTT.EMP 테이블에 대한 DDL을 싶어.
SQL> select dbms_metadata.get_ddl('TABLE', 'EMP') 2 from dual; DBMS_METADATA.GET_DDL('TABLE','EMP') -------------------------------------------------------------------------------- CREATE TABLE "SCOTT"."EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10), SQL>
그러나, 그것은 내가 기대했던 것이 아니다.
그래서 제대로 형식을 설정, 나에게 내 원하는 출력을 줄 것이다
SQL> set long 100000 SQL> set head off SQL> set echo off SQL> set pagesize 0 SQL> set verify off SQL> set feedback off SQL> select dbms_metadata.get_ddl('TABLE', 'EMP') 2 from dual; CREATE TABLE "SCOTT"."EMP" ( "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0), CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE, CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO") REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" SQL>
from https://stackoverflow.com/questions/26249892/how-can-i-generate-or-get-a-ddl-script-on-an-existing-table-in-oracle-i-have by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 대량으로 PostgreSQL을 만 새로운 행을 삽입하는 방법 (0) | 2020.06.17 |
---|---|
[SQL] SQL 업데이트는 MS Access에서 비애 - 작업이 업데이트 가능한 쿼리를 사용해야합니다 (0) | 2020.06.17 |
[SQL] 저장하는 룩업 테이블 아이디의 순수 데이터 간의 의사 (0) | 2020.06.16 |
[SQL] MySQLi은 IN 연산자로 제표를 작성 (0) | 2020.06.16 |
[SQL] VB.NET에서 문 준비 (0) | 2020.06.16 |