본문 바로가기

Server Oriented/DB-Oracle

(38)
Warevally Orange 4.x Schema Browser 스키마 브라우저 Table 탭에 comment 를 표시하는 방법 웨어벨리사의 오렌지 4.x 에서는 테이블과 칼럼에 대한 코멘트를 보여줄 수 있는 옵션이 있습니다. 물론, 수정도 가능하구요.. 아래 그림을 보면, 스키마 브라우저의 Table 탭 목록에 DB Table 이름만 나오는 것이 기본이거든요. 'Options' 아이콘을 클릭해서 코멘트도 보여지도록 설정하면 많이(?) 편리해집니다. Schema Tool Option 창에서 'Show comment on object' 를 선택하고 'OK' 버튼을 클릭하세요. 자, 이제.. 아래 그림과 같이 Table 항목 오른쪽에 'Comment' 항목이 열립니다. 해당 테이블 또는 칼럼의 comment 를 더블 클릭하면 해당 코멘트에 대하여 수정모드로 전환되고, 엔터를 치거나 다른 프로그램으로 Active Window(Windo..
SQL쿼리와 엑셀을 이용하여, 숫자에서 휴대폰 전화번호 구분 하거나 휴대폰 전화번호에서 숫자를 추출 전화번호에서 숫자를 추출하는 것은 비교적 쉽죠. SQL 이라면.. select replace('012-3456-7890','-','') from dual; 엑셀이라면.. =substitute("012-3456-7890", "-", "") 데이타가 많을때.. SQL 이라면 임시 테이블을 하나 만들어서 전화번호를 주욱 업로드 한 다음, select replace(phone_no,'-','') from table_a; 와 같이 전화번호가 업로드된 테이블 table_a 에서 전화번호 phone_no 를 replace 하면 됩니다. 엑셀이라면.. =substitute(cell_a_b,'-','') 와 같이 상대 좌표를 이용해서 주르륵 상기 산식을 입력해 넣으면 됩니다. 이제, 거꾸로 해 볼까요.. 사실 본 게시물..
UTL_HTTP 패키지를 사용하여 오라클 DB 에서 URI 호출하는 DB 프로시저 생성 혹시 10g 나 9i 에선 잘 되던 것이 11g 로 바뀌고 난 다음에 작동하지 않는다면 아래 링크를 클릭해 보세요.11g 부터는 utl_http 에 대한 접근권한을 설정해야 작동합니다 이곳에서는 단순히 URI 를 호출하는 방식을 기술합니다. Response 에 담아와서 추가적인 작업을 할 수도 있습니다. DB 프로시저에 .jsp 를 일단 등록했으니, DB Job 에 등록하면 매번 자동으로 돌아가게 할 수가 있습니다. Java 로 만들어서 Crontab 에 돌리는 것과 같은 효과입니다. CREATE OR REPLACE PROCEDURE SP_A IS REQ UTL_HTTP.REQ; RESP UTL_HTTP.RESP; BEGIN UTL_HTTP.SET_TRANSFER_TIMEOUT(5); -- 5초 이상 걸..
[방법론] DB 에 LongRaw 나 Blob 으로 들어 있는 이미지를 어플리케이션 서버에 생성 어플리케이션 서버가 중간에 없는 2 Tier 방식의 CS 시스템은, Client 가 Server 에 붙어서 바로 작업을 하고 이때 서버는 DB 서버가 되기 쉽습니다. Client 프로그램이 수정되면 DB 서버에서 수정된 프로그램 모듈을 다운로드 받고, 데이타도 DB 서버에서 제공받는 식입니다. 이런 방식이 다른 건 다 좋은데, 두가지 어려운 점이 있습니다. 하나는, 원격지에서 접속을 하는 것.. (대신 보안성은 웹 방식 보다 높지요) 하나는, 이미지 등의 대용량 정보를 다루는 것입니다. 이미지 등의 대용량 파일은 그래서 오라클의 경우 LongRaw 를 사용합니다. 최근에는 Blob 과 Clob 도 사용하지만, LongRaw 보다 다루기 쉽지 않다는 점이 문제가 되겠지요. 어플리케이션 서버가 중간에 있는 ..
LongRaw 와 Blob 은 getBinaryStream() 로 추출해서 루프를 통해 byte[] 단위로 스트림 아웃 하세욤.. 어떤 프레임 웍을 사용하든 기본은 DB 작업과 파일 작업. 만약 ResultSet 에 담긴 정보를 사용할때 프레임 웍에 따라 다른 클래스나 메소드에서 작업하면서, DB 작업에서 사용한 (Prepared)Statement 나 Connection 을 ResultSet 작업 전에 닫아 버리지 않도록 주의. LongRaw 로 된 사진 이미지도 Blob 과 동일하게 getBinaryStream() 메소드로 추출. SQLInjection 을 예방하려면 Statement 는 포기하고 PreparedStatement 를 사용. 아래 코드는 스프링 프레임 웍에서 필요한 부분만 따왔어요. 첫번째 메소드는 DB 쪽과 바로 닿아 있는 DAO 이고, 두번째 메소드는 DAO 에서 데이타를 읽어서 비즈니스 로직을 구현하는 부분. ..
ORA-01536 테이블스페이스에 영역할달양이 초과되었습니다 오라클 DB 계정상의 userB 가 userA 의 tablespaceA 를 공유하고 있을때, userB 에 대해서도 Quota 가 unlimited 로 되어 있어야 한다는 건 오늘 처음 알았습니다. userA 를 생성할때 tablespaceA 가 unlimited 로 되어 있지 않으면 제약사항이 있으리라는 건 다들 아시죠..? create user 명령으로 기본 생성시 quota 를 지정하지 않으면 limited 상태입니다. 오라클 DB 계정별로 이걸 처리해야 하는 거군요.. ^^. 아래 쿼리는 DBA 또는 시스템 권한을 부여받은 오라클 DB 계정으로 작업해야 합니다. 2가지 중에서 하나만 사용해 보세요. grant unlimited tablespace to ; alter user quota unlimi..