DBMS_METadata를 사용하여 스키마 이름이 없는 개체에 대한 DDL 스크립트를 생성하는 중입니다.GET_DDL?
다음을 사용하여 개체에 대한 DDL 스크립트를 생성하려면 어떻게 해야 합니까?DBMS_METADATA.GET_DDL
스키마 이름이 구워지지 않은 상태에서?
와 함께DBMS_METADATA.GET_DDL
:
CREATE TABLE "MYSCHEMA"."MYTABLE"
(
"COL1" NUMBER(10,0)
)
SQL 개발자도 그렇게 할 수 있고 DBMS_METADA도 사용하고 있다고 생각합니다.TA는 이러한 목표를 달성하고 일반적인 DDL 스크립트를 제공합니다.
SQL 개발자 사용:
CREATE TABLE "MYTABLE"
(
"COL1" NUMBER(10,0)
)
최근에 스키마 이름 없이 ddl을 얻을 수 있는 다음을 우연히 발견했습니다.
Oracle 문서에는 포함되어 있지 않지만 지금까지 본 다른 방법보다 훨씬 간단해 보입니다.스키마 이름 없이 ddl을 생성하는 SQL 개발자의 Statements Log in SQL Developer에서 발견했습니다.
DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'EMIT_SCHEMA', false);
DBMS_METADATA를 호출하기 전에 핸들이나 기타 고약한 작업을 수행할 필요는 없습니다.GET_DDL
REMAP_SCHEMA 옵션과 함께 SET_REMAP_PARAM 사용:
DBMS_METADATA.SET_REMAP_PARAM(th,'REMAP_SCHEMA','HR',NULL);
이렇게 하면 HR 스키마가 NULL로 매핑됩니다(그러나 작업 핸들이 필요합니다). 전체 예는 metadata_api 설명서를 참조하십시오.
스토리지 및 기타 속성을 제거하려면 스키마 제거 이외에도(위의 David Norris가 제안한 대로)기본적으로 단순한 DDL을 사용한 다음 아래와 같이 사용합니다.
BEGIN
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'SQLTERMINATOR', TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'PRETTY', TRUE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'SEGMENT_ATTRIBUTES', FALSE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'STORAGE', FALSE);
DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'EMIT_SCHEMA', FALSE);
END;
언급URL : https://stackoverflow.com/questions/6782278/generating-ddl-script-for-object-without-schema-name-baked-in-using-dbms-metadat
'programing' 카테고리의 다른 글
파이썬 플라스크 의도적 빈 반응 (0) | 2023.10.13 |
---|---|
phpMyAdmin이 #2002를 던지고 있습니다. mysql서버 phpmyadmin에 로그인할 수 없습니다. (0) | 2023.10.13 |
wocommerce_checkout_update_customer_data 사용 안 함 (0) | 2023.10.13 |
Ajax in Wordpress 플러그인 (0) | 2023.10.13 |
jQuery에서 드롭다운 값 가져오기 (0) | 2023.10.13 |