오라클의 기존 테이블에서 addl 스크립트를 생성하거나 가져올 수 있는 방법은 무엇입니까?하이브에서 다시 만들어야 합니다.
오라클의 기존 테이블에서 DDL 스크립트를 생성하려면 어떻게 해야 합니까?저는 Oracle 테이블에 있는 테이블을 Hive로 다시 만들어야 하는 프로젝트를 진행하고 있습니다.
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
@a_horse_with_no_name의 답변에 대해 조금 더 설명하겠습니다.사용.DBMS_METADATA
의 형식을 처리해야 할 수도 있습니다.SQL*Plus
정확한 출력을 얻기 위해.
예를 들어, 나는 그것을 얻고 싶습니다.DDL
위해서SCOTT.EMP
테이블.
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>
언급URL : https://stackoverflow.com/questions/26249892/how-can-i-generate-or-get-a-ddl-script-on-an-existing-table-in-oracle-i-have
'programing' 카테고리의 다른 글
Oracle 10g 데이터베이스에서 Oracle JDBC 12.1.0.1(12c 데이터베이스용)을 사용할 수 있습니까? (0) | 2023.07.26 |
---|---|
Spring Boot Test 1.5에서 런타임 로컬 서버 포트를 설정할 수 없음 (0) | 2023.07.26 |
npm: '--force'와 '--legacy-peer-deps'를 사용할 때 (0) | 2023.07.26 |
다트에서 문자열의 첫 글자를 대문자로 사용하는 방법은 무엇입니까? (0) | 2023.07.26 |
php-7로 업그레이드한 후 "정의되지 않은 함수 mysql_connect()로 호출" (0) | 2023.07.26 |