:: JDBC 드라이버 복사
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib 폴더 안에 ojdbc6_g.jar 파일을
C:\Java\jre1.8.0_162\lib\ext 로 복사

:: 간단한 사용 예시

Connection connection;
Statement statement;
ResultSet resultSet;

String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String uid = "publicvoid";
String upw = "privatevoid";
String query = "select * from void_members";

try {
	Class.forName(driver);
	connection = DriverManager.getConnection(url, uid, upw);
	statement = connection.createStatement();
	resultSet = statement.executeQuery(query);
	
	while (resultSet.next()) {
		String id = resultSet.getString("user_id");
		String pw = resultSet.getString("user_pw");
		String name = resultSet.getString("user_name");
		String mobile = resultSet.getString("user_mobile");
		out.println("아이디 : " + id + " / 패스워드 : " + pw + " / 이름 : " + name + " / 휴대전화 : " + mobile);
	}
} catch (Exception exception) {
	exception.printStackTrace();
} finally {
	try {
		if (resultSet != null) resultSet.close();
		if (statement != null) statement.close();
		if (connection != null) connection.close();
	} catch (Exception exception2) {
		exception2.printStackTrace();
	}
}
:: 제약조건 확인
SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME = '테이블명';

SELECT A.UNIQUENESS, B.* FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.INDEX_NAME = B.INDEX_NAME AND A.TABLE_NAME='테이블명';

::제약조건 삭제
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명 CASCADE;

::인덱스 생성
CREATE UNIQUE INDEX PK명 ON 테이블명 (컬럼명1, 컬럼명2....);

:: PK 생성
ALTER TABLE 테이블명 ADD (CONSTRAINT PK명 PRIMARY KEY (컬럼명1, 컬럼명2....));

테스트용 테이블 만들때 유용하게 쓸수 있죠..

CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER

 

검색을 걸어서 필요한 데이타만 복사할수도 있죠.

CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER WHERE IDX<10000

 

테이블 구조만 복사하고 싶다면..

CREATE TABLE TEST_MEMBER AS SELECT * FROM MEMBER WHERE 1=2

검색조건을 이렇게 한다면 테이타는 복사가 안되겠죠..

 

테이블이 이미 만들어진 경우는

INSERT INTO TEST_MEMBER SELECT * FROM MEMBER


주의할점은 테이블구조만 복사된다는 것이다.

프라이머리키나 인덱스등은 복사가 안돼니 따로 설정해 주어야 한다.


-- 추가


테이블을 다른 테이블스페이스로 지정하고 미리 생성해 둡니다.
CREATE TABLE COPY_TB
(A NUMBER,
 B VARCHAR2(10))
TABLESPACE COPY_TBS

그리고 기존 테이블의 내용을 새로 생성한 테이블에 쑤셔 넣습니다.
INSERT INTO COPY_TB SELECT * FROM ORI

이게 이상해 보이지만... exp/imp로 하는 방법도 있습니다.
요기에 대해서는.. 패스 ㅡㅡ;

9i 이상에서는 단 한줄로 테이블이 속한 테이블스페이스를 옮길 수 있습니다.
요렇게

ALTER TABLE copy_tb MOVE TABLESPACE users;

인덱스도 옮길 수 있다. 테스트용 scott꺼를 옮겨 보기로 하자.

alter index PK_EMP rebuild tablespace users




출처 : http://ilovehsk.tistory.com/109
:: 해당하는 PK 삭제
ALTER TABLE "테이블명" DROP CONSTRAINT "PK명";

:: 변경하고자 하는 COLUMN으로 Unique Index를 생성
CREATE UNIQUE INDEX "PK명" ON "테이블명"(칼럼1, 칼럼2, 칼럼3, 칼럼4);

:: PK에 속성 추가
ALTER TABLE "테이블명" ADD ( CONSTRAINT "PK명" PRIMARY KEY (칼럼1, 칼럼2, 칼럼3, 칼럼4) );

[출처] 오라클 pk 변경하기|작성자 리트머스