일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- boolean
- 학습법 #집중력
- Openlayers
- Let
- FOR
- Append
- createElement
- htmlFor
- VAR
- appendChild
- const
- createtextnode
- input
- Today
- Total
Atomic Habits
ORACLE 테이블 복사 (PK, INDEX 까지 복사하는 방법) 본문
출처: https://this1.tistory.com/entry/ORACLE-테이블-복사-PK나-INDEX도-다-복사하는-방법
이전에 올린 테이블 복사 방법은 PK나 INDEX등의 내용은 없이 테이블 구조와 데이터만 복사하는 방법이었다.
그래서 A계정 테이블의 스크립트를 불러와서 B계정에 테이블을 생성하는 방법을 고안해봤다.(이걸 자동으로 하기 위해서 프로시져로 만들었다)
하지만 이 방법은 SYS계정에서만 가능하다.
SYS계정과 같은 권한이 없는 계정에서 아래의 프로시져를 돌리면 권한이 불충분하다는 오류가 나온다.
일일히 스크립트를 복사+붙여넣기+실행하는게 싫어서 아래와 같은 프로시져를 만들었는데, 필요에 따라 활용하시기 바랍니다.
_________________________________________________________
CREATE OR REPLACE PROCEDURE SYS.프로시저명
IS
v_script VARCHAR2(2000);
CURSOR V_T_NAME IS
select
replace(dbms_metadata.get_ddl('TABLE','A계정의테이블명','A계정'),'"A계정명".','"B계정명".')script
from all_users
WHERE USERNAME='A계정명'
;
BEGIN
FOR TN IN V_T_NAME LOOP
BEGIN
v_script := TN.script;
EXECUTE IMMEDIATE v_script;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(' QUERY '|| v_script);
DBMS_OUTPUT.PUT_LINE(' error '|| TN.script||' : '||sqlerrm);
END;
END LOOP;
end;
_________________________________________________________
P.S : 이 프로시져를 활용하면 특정 계정의 전체 테이블 구조를 쉽게 복사 할 수 있습니다.
'IT > DB' 카테고리의 다른 글
Mysql federated (oracle dblink 와 같은 기능) - 물리적 다른 DB 연결 (0) | 2022.09.02 |
---|---|
오라클 정규식 (REGEXP) (1) | 2021.12.11 |
시노님(SYNONYM) & 테이블 권한 부여 (1) | 2021.12.11 |
[Oracle/오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성[출처] [Oracle/오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성|작성자 JOKER (0) | 2021.12.11 |
[참조] SQL Loader사용방법(상세 예시) (0) | 2021.11.18 |