728x90
반응형
728x90
반응형

덤프파일을 임포트하는 중에 ORA-39083오류가 발생하였습니다.

먼저 임포트하기 전 덤프파일(.dmp)을 dbdump폴더에 넣어줍니다.

sqlplus에서 import 명령 도중에 아래와 같은 오류가 발생하여 임포트를 실패하였습니다. (ora-39083)

구글링 해보다가 exp받은 dmp파일과 imp한 계정의 정보가 일치하지 않아서 발생했던 것이었습니다.

예를 들어 a사용자로 exp받은 dmp파일을 b사용자가 imp한 것이었죠.

그래서 imp 명령어를 a사용자로 다시해보니 정상적으로 import되었습니다.

 

 

 

 

추가로 sqlplus에서 물리 경로 dba_directory 확인하는 방법입니다.

col DIRECTORY_NAME for a14
col OWNER for a10
col DIRECTORY_PATH for a60
set linesize 200
set pagesize 50

cmd창에서 먼저 정렬을 위해 셋팅해줍니다.


select OWNER, DIRECTORY_NAME, DIRECTORY_PATH from dba_directories;

 

728x90
반응형
728x90
반응형

sqlplus에서 테이블스페이스 생성 중에 SP2-0734 오류가 발생하였습니다.

구글링해보니 해당 오류는 개행문자가 2번 이상있을 경우 발생하는 오류라고 하네요.

해결 방법은 간단합니다 

SQL> set sqlblanklines on 

옵션을 추가해주면 됩니다.

 

만약 추가해도 안된다면 실행하려는 sql을 수정해주면 될 것 같습니다.

저는 minextents 2를 복붙하다보니 minextents2 실행되어 테이블스페이스가 생성이 안되었습니다.

상황에 맞게 처리해주면 될 것 같습니다.

728x90
반응형
728x90
반응형

오라클 테이블에 들어있는 데이터 용량에 대에 알아보겠습니다.

먼저 정확한 테이블 용량을 측정하기 위해 analyze문을 이용해 통계 정보를 작성합니다.

 

저는 삭제 전 데이터 용량과 삭제 후 데이터 용량이 필요했습니다.

삭제전 용량을 미리 측정합니다.

1) 테이블 용량 확인

select 
        table_name, 
        num_rows,
        num_rows * avg_row_len, 
        round((num_rows * avg_row_len/1024/1024),2) "SIZE(Mb)", 
        round((num_rows * avg_row_len/1024/1024/1024),2) "SIZE(Gb)",
        last_analyzed
from user_tables

where table_name='테이블명'

;
2) 데이터 삭제 후 analyze구문 이용
analyze table 테이블명 compute statistics;

3) 다시 테이블 용량 확인

select 
        table_name, 
        num_rows,
        num_rows * avg_row_len, 
        round((num_rows * avg_row_len/1024/1024),2) "SIZE(Mb)", 
        round((num_rows * avg_row_len/1024/1024/1024),2) "SIZE(Gb)",
        last_analyzed
from user_tables

where table_name='테이블명'

;

결과는 아래와 같습니다.

삭제 전 용량은 약 500MB 삭제 후 용량은 32MB로 용량이 확실히 줄어든 것을 확인할 수 있습니다.

 

 

 

728x90
반응형
728x90
반응형

오라클 10g에서 오라클12c로 업그레이드를 해서 ojbdc.jar를 변경해줘야하는 일이 있었습니다.

저는 oracle12c에 맞는 ojdbc6.jar에서 ojdbc7.jar로 변경해주면 되는 줄 알았습니다.

하지만 ojdbc7.jar로 변경하고 select해본 결과 아래와 같은 오류가 발생했습니다.

Caused by: java.lang.UnsupportedClassVersionError: oracle/jdbc/driver/OracleDriver : Unsupported major.minor version 51.0

구글링 결과

jdk버전에 맞지 않는 lib를 추가해서 발생한 오류였습니다.

즉 jdk버전은 1.6인데 ojdbc7.jar를 사용해서 에러가 발생한 것

 

oracle사이트에 들어가 oracle12c에 맞는 jdk버전을 확인해봤습니다.

 ojdbc7.jar : jdk7 또는 jdk8버전 

 ojdbc6.jar : jdk6버전

https://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html

 

결론은 jdk버전에 따라서 오라클 ojdbc.jar 버전도 달랐던 것이었습니다.

 

jdk 버전에 맞는 jar파일 다운받아서 사용해야합니다.

오라클버전 jdk버전 jar
orcale 12c JDK 1.7이상 ojdbc7.jar
JDK 1.6이상 ojdbc6.jar
oracle 11g JDK 1.6이상 ojdbc6.jar
oracle 10g JDK 1.4, 1.5이상 ojdbc14.jar
728x90
반응형
728x90
반응형

오라클 데이터를 개행으로 입력하는 법에 대해 알아보겠습니다.

 

1) select '안녕하세요. ' || '홍길동입니다.' from dual;

 : 안녕하세요. 홍길동입니다.

 

2) select '안녕하세요. ' || CHR(13) || CHR(10) || '홍길동입니다.' from dual;

 : 안녕하세요.

 : 홍길동입니다.

 

3) select '안녕하세요. ' || CHR(10) || CHR(13) || '홍길동입니다.' from dual;

 : 안녕하세요.

 : 

 : 홍길동입니다.

 

ex) 업데이트 쿼리

update tbl_opinion set opinion = '안녕하세요.' || CHR(13) || CHR(10) || '홍길동입니다.' || CHR(13) || CHR(10) || '잘부탁드립니다.'

where opinionid = '' 

;

728x90
반응형
728x90
반응형

자바를 이용해 sha256 함수를 만들어 보겠습니다.


1. 오라클에 자바 클래스를 생성합니다.

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "SHA256PasswordEncoder{" AS 

import java.lang.*;

import java.io.*;


public class SHA256PasswordEncoder{

public static String encode(String passwd){

try {

if (passwd != null && !passwd.equals("")) {

java.security.MessageDigest digest = java.security.MessageDigest.getInstance("SHA-256");

byte[] bytData = passwd.getBytes();

digest.update(bytData);

byte[] buffer = digest.digest();

passwd = "";

for (int i = 0; i < buffer.length; i++) {

passwd = passwd + Integer.toHexString(buffer[i] & 0xFF).toUpperCase();

}

}

      return passwd;

} catch (Exception e) {

throw new RuntimeException(e);

}

}

}


2. 만든 자바클래스를 이용하여 함수를 만듭니다.

create or replace function gnuhash_sha256(passwd VARCHAR2) RETURN VARCHAR AS 

language java name 'SHA256PasswordEncoder.encode(java.lang.String) return java.lang.String';


3. 함수가 정상적으로 생성되었는지 테스트합니다.

select gnuhash_sha256('a') sha256_passwd

from dual

;--CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB


함수가 정상적으로 생성되었음을 확인할 수 있습니다.





패스워드 SHA256으로 암호화하기



728x90
반응형
728x90
반응형

오라클 SQL Developer에서 날짜(Data타입)는 19/01/12 이런식으로 조회가 되어 

시간을 조회하고 싶은 경우 설정을 통해 변경을 할 수 있습니다.


도구 -> 환경설정 -> 데이터베이스 -> NLS 을 선택합니다.


변경하지 않았더라면 날짜 형식 RR/MM/DD으로 되어 있을 겁니다.

형식을 RR/MM/DD HH24:MI:SS로 변경해주면 시간(시/분/초)까지 조회가 가능합니다.




728x90
반응형
728x90
반응형

오라클에서 쿼리를 조회할 때 '' 홑따옴표를 이용해서 조회를 하게됩니다.

그렇다면 홑따옴표(') 가 들어간 데이터는 어떻게 조회하면 될까요?

홑따오표를 '' 연속으로 입력하면 됩니다.


예시를 통해 확인해보겠습니다.

SELECT * FROM 테이블명

WHERE title = '190101 ''보고서'' 테스트문서'

;



따옴표가 들어간 데이터를 조회할 수 있습니다.



728x90
반응형
728x90
반응형

+ Recent posts