본문 바로가기

오라클

[오라클] 데이터 해시 방법 MySQL은 SH1('해싱값'), MD5('해싱값') 하여 편하게 사용하였으나, 오라클은 방법이 약간 다르다. 암호화 처리를 위한 패키지를 제공한다. DBMS_OBFUSCATION_TOOLKIT DBMS_CRYPTO 우선 SYSTEM 계정에서 DBMS_CRYPTO 사용할 유저에 대한 권한을 부여 해야한다. GRANT EXCUTE ON DBMS_CRYPTO to 유저명 부여받은 유저는 이제 해당 함수를 사용 할 수 있게 된다. ex) RAWTOHEX(DBMS_CRYPTO.HASH(to_clob(해싱값),2)) ex) DBMS_CRYPTO.HASH(UTL_I18N.STRING_TO_RAW(해싱값),2) DBMS_CRYPTO.HASH 에서 첫번째 파라메터는 해싱할 원본 데이터 두번째 파라메터(숫자) 는 아래와.. 더보기
JAVA SQLLite3 사용하기 (3) ※ 앞서 미리 프로젝트에서 라이브러리가 추가되었고, DBMS 을 통해 데이터베이스가 생성되었다 가정하에 진행합니다. ※ 이미 MySQL, 오라클 같은 JDBC 프로그래밍이나, Arraylist, 제네릭 프로그래밍을 알고있다는 가정하에 진행하겠습니다. (모두 세세히 풀어쓰기엔 좀 무리가 있습니다.) 1. 우선, SQL 매니져로 생성했던, 데이터베이스를 프로젝트내 폴더를 하나 생성해서 복사합니다. (위 프로젝트에서는 resource 라는 폴더명으로 생성후 넣었습니다.) 이제 모든 준비는 끝났습니다. 이제 실제적으로 코드레벨에서 해당 데이터베이스에 접근해보도록 하겠습니다. 먼저, 저는 두개의 패키지를 나누어 관리하겠습니다. com.db 패키지 - Datainfo 라는 클래스는, 데이터베이스에 존재하는 필드인 .. 더보기
JAVA SQLLite3 사용하기 (2) 우선, 첫번째 강좌에서 자바 프로젝트에서 외부라이브러리 호출방법에 대해 익혀보았습니다. 이제, SQLite Manager 을 설치하여 데이터베이스 생성 에 대해 배워보겠습니다. 파이어폭스를 설치후, 부가앱(무료) 에서 SQLite Manager 를 설치하도록 합니다. 설치가 정상적으로 수행되었다면, 도구에 설치된것을 볼수 있습니다. 실행하도록 합니다. 위와 같은 화면의 어플리케이션이 실행됨을 볼수 있습니다. 딱히 어려운 부분은 없으나, 다른 부가적인것은 배재하고 필요한것만 설명하도록 하겠습니다. 이제 데이터베이스를 생성하도록 하겠습니다. 1. 먼저 Database 첫번째 메뉴에서 New Database 를 클릭하도록 하겠습니다. 2. 위와 같은 화면이 뜨게 되는데, 이 화면은 데이터베이스의 이름을 설정하.. 더보기
EXISTS, IN 문제. A 테이블, B 테이블 서로 ID 라는 필드가 존재하며, 해당 필드값은 A,B 양쪽모두 동일해야한다. 단, B테이블에서 제거되어 NULL 이 되었고, A테이블 내 ID필드값 은 여전히 존재한다. 게임으로 생각해보자면.. B 캐릭터 정보 테이블, A 캐릭터 인벤토리 아이템 테이블 캐릭터가 삭제되었으나, 인벤토리 소지템이 DB 에 여전히 쓰레기값으로 존재하고 있다. 이를 지워야한다. 처음 while 문으로 해당 값을 비교하여 일일이 지워줄까도 생각해봤다.. 하지만 이작업은 존나 느리다. 방대한 데이터베이스일수록.. 아래 작업을 이용하면 바로 단 한줄로 모든게 해결된다. EXISTS나 IN을 이용하면 편하게 구할 수 있습니다. SELECT ID FROM B WHERE NOT EXISTS (SELECT .. 더보기