지금은 별로 사용할일이 없지만 예전부터 궁금하던것

이클립스를 사용안하면 어떻게 클래스를 컴파일 시켜서 적용을 시킬까?

예전엔 그렇게 찾아도 안보이던 것이 .....이리 쉬울줄이야..

 

1.  톰캣사용시 컴파일후 바로 적용

c:\Tomcat\conf\context.xml
<Context> 태그에 reloadable 속성추가
예) <Context reloadable="true">
Restart!

2. 컴파일
C:\WEB\WEB-INF\classes> set classpath=..\classes;
C:\WEB\WEB-INF\classes> javac -d ..\classes DB_Function\DB_Class.java
 
혹시나 몰라서 써둔다. 


?
장애 로그 상세 
오라클을 startup 하는데 End-Of-File 어쩌구 저쩌구가 나왔다.
검색을해보니 광범위 의 장애 랜다

상세로그를 확인하게위해 검색을 떄려보니 아래와 같은 명령이 있더라 참조하자!

01
02
03
04
05
06
07
08
09
10
11
$ adrci
 
ADRCI: Release 11.2.0.2.0 - Production on Thu Dec 1 15:38:15 2011
ADR base = "/u01/app"
 
adrci> show homes
diag/tnslsnr/ip-10-100-255-165/listener
diag/rdbms/uw01/uw01
 
adrci> set home diag/rdbms/uw01/uw01
adrci> show alert -tail 100



insert into user(host, user, password) values('localhost', '아이디', password('비밀번호'));
insert into user(host, user, password) values('%', '아이디', password('비밀번호'));

grant all privileges on DB명.* to 아이디@localhost identified by '비밀번호';
grant all privileges on DB명.* to 아이디@'%' identified by '비밀번호';


접속 세션 조회
SELECT   /*+ rule */
         s.status "Status", s.serial# "Serial#", s.TYPE "Type",
         s.username "DB User", s.osuser "Client User", s.server "Server",
         s.machine "Machine", s.module "Module", s.terminal "Terminal",
         s.program "Program", p.program "O.S. Program",
         s.logon_time "Connect Time", lockwait "Lock Wait",
         si.physical_reads "Physical Reads", si.block_gets "Block Gets",
         si.consistent_gets "Consistent Gets",
         si.block_changes "Block Changes",
         si.consistent_changes "Consistent Changes", s.process "Process",
         p.spid, p.pid, s.serial#, si.sid, s.sql_address "Address",
         s.sql_hash_value "Sql Hash", s.action
FROM V$SESSION s, V$PROCESS p, SYS.V_$SESS_IO si
WHERE s.paddr = p.addr(+)
     AND si.sid(+) = s.sid
     AND s.username IS NOT NULL
     AND NVL (s.osuser, 'x') <> 'SYSTEM'
     AND s.TYPE <> 'BACKGROUND'
ORDER BY 3

조회 쿼리 수
select 	s.sid
     	, s.program
     	, ss.value "open_cursor"
from 	v$sesstat ss, v$session s
where 	ss.statistic# = 3 and 
		s.sid = ss.sid 
order 	by 3 desc

SELECT  *  
FROM sys.dm_os_performance_counters 
WHERE object_name = 'SQLServer:General Statistics'
출처 : http://biju.tistory.com/271  
<style type="text/css">
    .vCenter { display:table; width:400px; height:400px; border:1px solid red; }
    .vCenter span { display:table-cell; text-align:center; vertical-align:middle; }
        .vCenter span a {  }
</style>
<!--[if lt IE 8]> ie8보다 버전이 낮은 브라우져에서 실행
<style type="text/css">
    .vCenter { position:relative; }
    .vCenter span { display:inline-block; position:absolute; top:50%; left:50%; }
        .vCenter span a { position:relative; top:-50%; left:-50%; }
</style>
<![endif]-->
<div class="vCenter">
    <span>
        <a href="#">
            <img src="thumbnails.jpeg" alt="이미지" />
        </a>
    </span>
</div>
윈도우용 Mysql DB를 리눅스용 Mysql로 이관작업을 하다가 까먹을까바 포스트한다.

명령어 몇번으로 모든 데이터를 이관할수 있다.

본인기준으로 윈도우용 MySQL 경로는 C:\Program Files\MySQL\MySQL Server 5.0 이다.
아래 bin 폴더로 이동후 다음과 같은 명령어를 실행하면 파일이 생성된다.

C:\Program Files\MySQL\MySQL Server 5.0\bin>
mysqldump -u root -p --default-character-set=euckr 디비 > 파일.sql
Enter password:****
C:\Program Files\MySQL\MySQL Server 5.0\bin>
 

백업완료... 간단하다!

이제 복구를 해보자
 
linux서버의 MySQL 경로는  /usr/local/mysql 이다
복구하기전 DB를 먼저 생성 하고
다음 명령어를 실행한다
mysql -u root -p DB명 < 파일명.sql
Enter password:****

 
yum으로 하면 간단할것을 수동으로 한번 해보겠다고 쑈하다가 하루 날렷다..;;;
잊어버릴까바 포스트 해둔다.


1. 준비
     cmake-2.8.4.tar.gz
     mysql-5.5.13.tar.gz
     MySQL-devel-5.5.13-1.rhel5.i386.rpm

 

 

   http://www.cmake.org/cmake/resources/software.html 접속후 cmake-2.8.4.tar.gz 파일을 받으면 된다

 

 


  http://www.mysql.com 접속후
  Download -> MySQL Community Server 5.5.13 -> Source Code -> mysql-5.5.13.tar.gz  다운받는다.

  Select Platform 선택 메뉴에서 Redhat 메뉴를 클릭하면
  MySQL-devel-5.5.13-1.rhel5.i386.rpm 파일이 있다 본인은 저파일이 없어서 다운 받음 (버전은 크게 상관없는듯)
 
2. 필요 패키지 설치
   어디에 쓰는건지 본인도 모른다. 검색하다가 따라하니 되었을뿐! (나중에 공부하자 ㅠㅠ)
   [MySQL-devel-5.5.13-1.rhel5.i386.rpm 은 위에서 받은것임]

[root@localhost src]# rpm -Uvh --force --nodeps MySQL-devel-5.5.13-1.rhel5.i386.rpm
[root@localhost src]# yum -y install zlib curl
[root@localhost src]# yum -y install gcc g++ cpp gcc-c++
[root@localhost src]# yum -y install openssl openssl-devel
[root@localhost src]# yum -y install ncurses-devel
[root@localhost src]# yum -y install bzip2-devel
[root@localhost src]# yum -y install libtermcap-devel libc-client-devel
[root@localhost src]# yum -y install bison


3. CMAKE 설치
    5.5 이전버전은 configure 를 이용해서 설치하였다고 한다(안해봤음) 5.5버전부터는 CMAKE 를 이용해서 MYSQL를 설치 할수있기 때문에 먼저 CMAKE를 설치하도록 한다.


[1]. 다운받은경로에서 tar xvf cmake-2.8.4.tar.gz 로 압축을 푼다.




[2]. 압축해제 폴더로 이동후 ./bootstrap 실행





[3]. 설치 파일 생성 make




[4]. 파일 설치 make install



[5]. cmake를 설치하면 /usr/local/bin 에 위치한다  cmake 명령어로 설치 확인!


4. 그룹생성
    mysql 를 설치하기전에 사용자와 그룹을 생성한다.


groupadd mysql
useradd -g mysql mysql


5. Mysql 설치

[1]. Cmake 에서 했던것처럼 압축을 해제를 한후 압축 해제한 경로로 이동한다.
tar xvf mysql-5.5.13.tar.gz
cd mysql-5.5.13


[2]. CMAKE를 이용하여 MYSQL 소스를 컴파일한다. (설치위치를 /usr/local/mysql 로 지정)


아래 소스는 보기 편하게 하기위해 줄을 나눈것 실행할땐 한줄로!
 
cmake .  
	-LH 
	-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
	-DDEFAULT_CHARSET=utf8 
	-DDEFAULT_COLLATION=utf8_general_ci 
	-DWITH_EXTRA_CHARSETS=all 
	-DMYSQL_DATADIR=/usr/local/mysql/data
 

[3]. 컴파일후 설치파일 생성, 설치 시작 

 


make; make install


[4]. 설치가 완료 되었다. 이제 설치디렉토리로 이동하여 기본 데이터베이스를 생성하여야 하는데
       설치된 디렉토리로 이동하기전에 폴더의 권한을 mysql 로 변경해야 데몬이 시작 된다.


chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

마지막에 datadir 부분이 이미지와 소스가 다른데 이미지를 잘못올린거다 이미지는 참조만 하고
소스에 적어놓은거 대로 하자..난 /usr/local/mysql/data 에 데이터 파일들을 생성한다.!


[5]. 설정파일들을 복사하자 support-file 폴더아래 my-medium.cnf,  mysql.server 파일을 해당 경로로 복사!


cp support-files/mysql.server /etc/init.d/mysqld
cp support-files/my-medium.cnf /etc/my.cnf

vi /etc/init.d/mysqld

service mysqld start



vi /etc/init.d/mysqld  수정 내용
datadir="데이터파일 설치 경로"
아래 이미지는 참조만.... 위설명대로 따라했으면
datadir=/usr/local/mysql/data 로 하여야 한다.


설치가 완료 되었다.

service mysqld start 명령어로 mysql 을 시작할수 있다
아래 소스들을 루트계정 패스워드 설정부분과 접속!



포스트 이거 생각보다 빡씨구나..;;;






출처 : http://blog.naver.com/dolmang7/150037571097

-- SID 조회
SELECT instance FROM v$thread;

-- GLOBAL_NAME 조회
SELECT * FROM props$ WHERE name='GLOBAL_DB_NAME';
SELECT * FROM global_name;

-- GLOBAL_NAME 수정
ALTER DATABASE RENAME GLOBAL_NAME TO 'NAME';
어디서 퍼왔는지 모르겠어요~ 죄송 ㅠㅠ
*****************************************
  테이블 스페이스 확인
******************************************/
-- 생성되어 있는 테이블 스페이스 보기.
SELECT * FROM DBA_TABLESPACES;
-- 생성되어 있는 DBF 파일 보기.
SELECT * FROM DBA_DATA_FILES;
-- 생성되어 있는 TEMP DBF 파일 보기.
SELECT * FROM DBA_TEMP_FILES;


/*****************************************
  테이블 스페이스 생성
  확장자 명은 DBF 또는 .DAT, .ORA를 사용할 수 있다. 
  일반적으로는 DBF를 가장 많이 사용한다.
  DBF '[테이블스페이스경로(예. /usr/lib/oracle/xe/oradata/XE/)]/[테이블스페이스명].dbf'
  ex 10g 경우) => C:\oracle\product\10.2.0\oradata\[폴더]\[테이블스페이스명.dbf]
  ex XE  경우) => C:\oraclexe\oradata\XE\[폴더]\[테이블스페이스명.dbf]
******************************************/
CREATE TABLESPACE TABLESPACENAME
DATAFILE 'E:\oracle\product\10.2.0\oradata\directoryname\sample.dbf'
SIZE 500M                                      -- 기본 용량
AUTOEXTEND ON                           -- 기본 용량을 자동으로 늘려줌
extent management local autoallocate;


/*****************************************
  테이블 스페이스 삭제
  INCLUDING CONTENTS AND DATAFILES : 모든 내용 삭제
  CASCADE CONSTRAINTS : 종속된 제약 조건 삭제  
******************************************/
ALTER TABLESPACE TABLESPACENAME OFFLINE;
DROP TABLESPACE TABLESPACENAME
INCLUDING CONTENTS AND DATAFILES
CASCADE CONSTRAINTS;

 테이블스페이스의 공간부족현상 해결법  Oracle  2006/12/18 11:50
* "ORA-01658: xxxx 테이블스페이스에 세그먼트에 대한 INITIAL 확장 영역을 작성할 수 없습니다." 라는 오류는 왜 발생하며, 어떤 조치를 취해야 합니까?

원인) 해당 테이블 스페이스에 할당된 공간이 부족하지만 AUTOEXTEND 설정이 OFF 되어 있어서 더 이상의 ENTENT를 할당 할 수 없을 때 발생합니다.
해결) 해당 데이터파일의 크기를 재조정 하거나, 해당 테이블 스페이스에 새로운 데이터 파일의 추가 또는 데이터 파일의 AUTOEXTEND ON 설정을 하면 해결됩니다.

조치)

--1. 해당 데이터파일의 크기를 재조정 
	ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\KIRIO1\A1_CLON\A1.DBF' RESIZE 1100M; 
--2. 해당 테이블 스페이스에 새로운 데이터파일 추가 
	ALTER TABLESPACE DATA ADD DATAFILE 'd:\oracle\oradata\kirio1\data01.dbf' SIZE 100M; 
--3. 해당 데이터파일에 AUTOEXTEND ON 설정 
	ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\KIRIO1\A1_CLON\A1.DBF' AUTOEXTEND ON; 

어디서 퍼왔는지 모르겠어요~ ㅠㅠ

-- 테이블스페이스 삭제
-- 테이블스페이스가 오프라인으로 상태에서 명령을 내리길 권장
DROP TABLESPACE unicorn_temp
INCLUDING CONTENTS CASCADE CONSTRAINTS;

-- DATA TABLESPACE 생성
CREATE TABLESPACE unicorn_data
DATAFILE 'D:\oracle\oradata\unicorn_data.TBL' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
DEFAULT STORAGE
(INITIAL 4K
NEXT 128K
MINEXTENTS 1
PCTINCREASE 0);

-- INDEX TABLESPACE 생성
CREATE TABLESPACE unicorn_index
DATAFILE 'D:\oracle\oradata\unicorn_index.TBL' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
DEFAULT STORAGE
(INITIAL 4K
NEXT 128K
MINEXTENTS 1
PCTINCREASE 0);

-- TEMP TALBESPACE 생성
CREATE TEMPORARY TABLESPACE unicorn_temp
TEMPFILE 'D:\oracle\oradata\unicorn_temp.TBL' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;


-- 사용자 생성 
CREATE USER unicorn IDENTIFIED BY unicorn
DEFAULT TABLESPACE unicorn_data
TEMPORARY TABLESPACE unicorn_temp;

-- 사용자 비밀번호 변경
ALTER USER unicorn IDENTIFIED BY unicorn;

-- 권한 설정
-- 생성한 사용자에게 자신의 schema에서 테이블등을 만들 권한과 자원을 사용할 권한을 준다.
-- GRANT RESOURCE, CONNECT TO MIDAN; 
-- DBA 권한을 준다.
GRANT DBA TO unicorn;

-- datafile 추가
ALTER TABLESPACE unicorn_data
ADD DATAFILE 'D:\oracle\oradata\unicorn\unicorn_dat02.dbf' SIZE 2048M;
/*
alter tablespace unicorn_data
add datafile 'D:\oracle\oradata\unicorn\unicorn_dat02.dbf' size 50M
autoextend on next 20M maxsize 100M 

추후에 datafile에 자동증가만 추가하려면
alter database datafile 'D:\oracle\oradata\unicorn\unicorn_dat02.dbf' 
       autoextend on next 20M maxsize 100M 
계속 증가하도록 하려면 100M 대신 unlimited 사용 (32G이상 확장되지 않음) 
*/

-- datafile 확인
select * from DBA_DATA_FILES;

-- 등록되어 있는 사용자보기
SELECT * FROM ALL_USERS;


-- 사용자 삭제
-- ※ CASCADE를 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터 
-- 삭제되며 모든 스키마 객체들 또한 물리적으로 삭제 됩니다. 
DROP USER scott CASCADE;


--IMPORT, EXPORT 권한을 준다.
GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO unicorn;

/*
--시스템 권한 부여
GRANT CREATE USER, ALTER USER, DROP USER TO scott WITH ADMIN OPTION.
--*설명 : scott 사용자에게 사용자를 생성, 수정, 삭제 할 수 있는 권한을 부여하고,
-- scott 사용자도 다른 사용자에게 그 권한을 부여 할 수 있습니다.

--시스템 권한 박탈
REVOKE CREATE USER, ALTER USER, DROP USER FROM scott
--*설명 : scott 사용자에게 부여한 생성, 수정, 삭제 권한을 회수합니다,
*/

--사용자조회
SELECT username, default_tablespace, temporary_tablespace FROM DBA_USERS;
SELECT * FROM ALL_USERS;

-- 테이블스페이스조회
SELECT * FROM DBA_TABLESPACES; 


% 그외 TIP



-------------------------------------------------------------------------------------
※ ORACLE SID 확인

SELECT INSTANCE
FROM V$THREAD;
-------------------------------------------------------------------------------------
※ ORACLE DB_NAME 확인

SELECT NAME 
FROM V$DATABASE;
-------------------------------------------------------------------------------------
※ ORACLE VERSION 확인

SELECT *
FROM V$VERSION;
-------------------------------------------------------------------------------------
※ ORACLE USER 확인

SELECT * 
FROM ALL_USERS;
-------------------------------------------------------------------------------------
※ 등록된 USER 목록 보기

SELECT USERNAME, USER_ID 
FROM DBA_USERS 
ORDER BY 
USERNAME;
-------------------------------------------------------------------------------------
※ USER가 소유한 모든 테이블 보기

SELECT TABLE_NAME 
FROM USER_TABLES;
-------------------------------------------------------------------------------------
※ 사용자 정보 

SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE 
FROM DBA_USERS;
-------------------------------------------------------------------------------------
※ 오브젝트 조회

SELECT * 
FROM ALL_OBJECTS 
WHERE OBJECT_NAME LIKE '명';
-------------------------------------------------------------------------------------
※ 테이블 조회

SELECT * 
FROM ALL_TABLES 
WHERE TABLE_NAME LIKE '명';
-------------------------------------------------------------------------------------
※ 시퀀스 정보 

SELECT * 
FROM USER_SEQUENCES;
-------------------------------------------------------------------------------------
※ 시노님 조회

SELECT * 
FROM ALL_SYNONYMS 
WHERE SYNONYM_NAME='명';
-------------------------------------------------------------------------------------
※ 테이블 인덱스 정보 조회

SELECT * 
FROM ALL_IND_COLUMNS 
WHERE TABLE_NAME='테이블명';
-------------------------------------------------------------------------------------
※ 테이블의 컬럼 정보 조회

SELECT * 
FROM ALL_TAB_COLUMNS 
WHERE TABLE_NAME='테이블명';
-------------------------------------------------------------------------------------
※ TABLE COMMENT 쿼리

SELECT * 
FROM ALL_TAB_COMMENTS 
WHERE TABLE_NAME='테이블명';
-------------------------------------------------------------------------------------
※ COLUMN COMMENT 쿼리

SELECT * 
FROM ALL_COL_COMMENTS 
WHERE TABLE_NAME='테이블명';
-------------------------------------------------------------------------------------
※ 콘트롤파일의 데이타파일 정보와 테이블스페이스 정보 

SELECT status,enabled, t.name,d.name 
FROM v$datafile d, v$tablespace t 
WHERE t.ts#=d.ts#;
-------------------------------------------------------------------------------------
※ 테이블스페이스의 데이터파일과 테이블스페이스의 크기 확인
※ DBA_DATA_FILES 데이터 사전을 이용 하면 됩니다. 

SELECT file_name, tablespace_name, bytes, blocks, status, user_bytes, user_blocks
FROM DBA_DATA_FILES;
-------------------------------------------------------------------------------------
※ 테이블 스페이스별 사용 가능한 공간의 확인
※ DBA_FREE_SPACE 데이터 사전
※ SUM을 사용한 이유는하나의 테이블 스페이스에 분산되어 있는 여유공간을 합한 것이며
※ MAX를 사용한 이유는 여유 공간중 가장 큰 공간의 SIZE를 의미 합니다.

SELECT tablespace_name, SUM(bytes), MAX(bytes) 
FROM DBA_FREE_SPACE 
GROUP BY tablespace_name;
-------------------------------------------------------------------------------------
※데이타 화일에 대한 총 크기와 남아있는 공간, 사용한 용량, 남은 %율
※DBA_FREE_SPACE, DBA_DATA_FILES 데이터 사전 

SELECT b.file_name "FILE_NAME", -- DataFile Name 
b.tablespace_name "TABLESPACE_NAME", -- TableSpace Name 
b.bytes / 1024 "TOTAL SIZE(KB)", -- 총 Bytes 
((b.bytes - sum(nvl(a.bytes,0)))) / 1024 "USED(KB)", -- 사용한 용량 
(sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)", -- 남은 용량 
ROUND((sum(nvl(a.bytes,0)) / (b.bytes)) * 100, 2) "FREE %" -- 남은 % 
FROM DBA_FREE_SPACE a, DBA_DATA_FILES b 
WHERE a.file_id(+) = b.file_id 
GROUP BY b.tablespace_name, b.file_name, b.bytes ORDER BY b.tablespace_name
-------------------------------------------------------------------------------------
※오라클 권한 준거 확인 (테이블 권한)
SELECT *
FROM USER_TAB_PRIVS;
-------------------------------------------------------------------------------------
※오라클 VIEW Table 조회
SELECT OBJECT_NAME, OBJECT_TYPE
FROM ALL_OBJECTS
WHERE OWNER = 'NIS'
AND OBJECT_TYPE = 'VIEW';

SELECT *
FROM TAB;
-------------------------------------------------------------------------------------
※오라클 비밀번호 강제 변경

sqlplus "/as sysdba"

ALTER USER 아이디 IDENTIFIED BY 암호;

-------------------------------------------------------------------------------------
※락 잡힌거 죽이기

--락확인 법
SELECT A.SESSION_ID SID,
B.SERIAL# SERIAL_NO,
A.OS_USER_NAME OS_USER_NAME,
A.ORACLE_USERNAME ORACLE_USERNAME,
B.STATUS STATUS
FROM V$LOCKED_OBJECT A, V$SESSION B
WHERE A.SESSION_ID = B.SID;

SELECT *
FROM V$LOCKED_OBJECT;

ALTER SYSTEM KILL SESSION 'SID, SERIAL_ID';

-------------------------------------------------------------------------------------
권한주기
GRANT SELECT,DELETE,UPDATE ON SMSVNJNVIEW TO SMSVIEW WITH GRANT OPTION;

-------------------------------------------------------------------------------------
아이디생성
CREATE USER SMSVIEW PROFILE DEFAULT IDENTIFIED BY SMSVIEW;

GRANT CONNECT, RESOURCE TO SMSVIEW;
-------------------------------------------------------------------------------------
시노님 생성

CREATE PUBLIC SYNONYM SMSVNJNVIEW FOR NIS.SMSVNJNVIEW;
-------------------------------------------------------------------------------------
디비링크 거는법

1. tnsnames.ora 파일 정보추가

tns =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1 )(PORT = 1521))
)
(CONNECT_DATA =
(SID = ora92)
)
)

2. 연결

CREATE DATABASE LINK 링크명
CONNECT TO 아이디
IDENTIFIED BY 비번
USING 'tns'
-------------------------------------------------------------------------------------
pk 생성

ALTER TABLE 테이블 ADD (
CONSTRAINT pk명 PRIMARY KEY (컬럼, 컬럼));
-------------------------------------------------------------------------------------
인덱스 생성
CREATE INDEX 인덱스명 ON 테이블 (컬럼, 컬럼);

CREATE UNIQUE INDEX 인덱스명 ON 테이블 (컬럼, 컬럼);
------------------------------------------------------

-------------------------------
테이블 설명
COMMENT ON TABLE 테이블명 IS '부과대장';
COMMENT ON COLUMN 테이블명.컬럼명 IS '부과대장키 ';
-------------------------------------------------------------------------------------




CREATE OR REPLACE TRIGGER 트리거명
	AFTER INSERT OR UPDATE OR DELETE OF 선택컬럼명 ON 테이블명
FOR EACH ROW
	BEGIN
		IF (INSERTING) THEN
			INSERT INTO 테이블(선택컬럼) VALUES(:NEW.선택컬럼);
		ELSIF (UPDATING) THEN
			UPDATE 테이블	SET 선택컬럼=:NEW.선택컬럼 WHERE 선택컬럼=:OLD.선택컬럼;
		ELSIF (DELETING) THEN
			DELETE FROM 테이블 WHERE 선택컬럼 = :OLD.선택컬럼;
		END IF;
	END;
SELECT	SUBSTR(
				WDATA, 
				INSTR(WDATA, '|', 1, LEVEL) + 1, 
				INSTR(WDATA, '|', 1, LEVEL + 1) - INSTR(WDATA, '|', 1, LEVEL) - 1
			) NAME 
FROM 	( 
		 	SELECT	'|aaa|bbb|ccc|ddd|eee|'  AS WDATA
			FROM	dual
		) 
CONNECT BY LEVEL <= LENGTH(WDATA) - LENGTH(REPLACE(WDATA, '|')) - 1 



결과


exec sp_configure 'show advanced options', 1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure


-- 예제 1)
select * from 
OPENROWSET('Microsoft.Jet.OLEDB.4.0','text;Database=절대경로;HDR=NO','select * from 파일명')

-- 예제 2)
select * from
OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=절대경로;','select * from 파일명')
 
 
 
 

쿼리창에서 입력할때마다 한글로 바뀌는경우
기본 언어를 변경해주면 된다.


예) 설치된 인스턴스 - 속성 - 고급 - 기본언어(한글로 설치되었으면 Korean) => English

아파치 사이트에서 톰캣을 다운로드 받는다(알아서!!)
1. 압축을 푼다
   ex) tar xvzf 파일명

2. 프로파일을 수정 한후 적용한다.
[root /] vi /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

export JAVA_HOME=/usr/local/etc/jdk1.6.23
export CATALINA_HOME=/usr/local/etc/tomcat

export JAVA_HOME CATALINA_HOME

3. 톰캣을 실행한다.
2010/12/03 14:27
리눅스 유분투에 오라클10g 설치

 

 1. 설치 파일 준비

?리눅스용 오라클 버전을 오라클 홈페이지에서 다운을 받는다.


다운을 받기 위해서는 오라클에 가입이 되었어야 하므로 다운받기전에 회원가입을 먼저 하도록 하자.
다운로드한 파일은 리눅스의 특정 디렉토리로 옴겨놓자.


2. 설치를 위한 환경구성

?1) 먼저 터미널을 열고 설치에 필요한 기본 시탭틱을 설치한다.

$sudo apt-get install gcc binutils libaio1 lesstif2 lesstif2-dev make rpm libc6 libstdc++5 build-essential


2) 설치에 필요한 그룹과 유저를 생성한다.

$sudo groupadd oinstall
$sudo groupadd dba
$sudo groupadd nobody
$sudo useradd -m oracle -g oinstall -G dba -s /bin/bash
$sudo passwd oracle


3) 오라클에 필요한 memory와 CPU resources를 위해 커널 파라미터를 수정한다.
    (메모리와 CPU자원이 충분하지 않으면 오라클 인스턴스가 올라가질 않는다. 물론 설치도 안됨.)
    우선 파일 수정을 위해 sysctl.conf파일을 연다. (vi편집기, vim, gedit 등 사용해 파일을 연다.)

$sudo vim /etc/sysctl.conf


 오픈된 파일의 맨 하단에 아래의 내용을 추가하고 저장한다.

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000


저장하고 파일을 닫는다. 위에서 수정한 sysctl.conf파일은 Ubuntu시스템이 처음 부팅시 한번 읽어들이는 정보이므로 재부팅을 한다. 귀찮으면 모듈을 강제로 내렸다가 올리면 된다.

$sudo /sbin/sysctl -p



4) 시스템에 security의 limits파일을 열고 다음 정보를 추가한다.

$sudo vim /etc/security/limits.conf


   추가할 정보를 아래와 같다. 맨 하단에 추가하자 ^^

* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536


5) 몇가지 링크와 폴더 생성 및 권한설정을 해주자

$sudo ln -s /usr/bin/awk /bin/awk
$sudo ln -s /usr/bin/rpm /bin/rpm
$sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
$sudo ln -s /usr/bin/basename /bin/basename
$sudo mkdir /oracle
$sudo mkdir /oracle/10g
$sudo chown -R oracle:oinstall /oracle
$sudo chmod -R 775 /oracle


6) 환경변수 설정 (etc 및에 profile을 수정한다.)

$sudo vim /etc/profile


   마찬가지로 젤 하단에 아래의 정보를 복사해서 붙여넣는다.

export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/10g
export ORACLE_SID=orcl10
export PATH=$PATH:$ORACLE_HOME/bin


  환경변수가 적용되었는 여부를 확인해 보자.

$ su - oracle
Password:
$ echo $ORACLE_BASE
/oracle
$ echo $ORACLE_HOME
/oracle/10g
$ exit
logout


  위와 같이 설정한대로 출력된다면 정상이다. 


7) 레드헷 엔터프라이즈 릴리즈 파일을 만들어준다.  (음.. 왜 하는지는 정확히 모르겠다.  ^^;;;)

$sudo vim /etc/redhat-release


  파일에 아래의 정보를 복사해서 붙여넣는다.

Red Hat Enterprise Linux AS release 3 (Taroon)



3. 설치

?1) 다운받아 놓은 오라클 파일(10201_database_linux32.zip)의 압축을 풀어주자.
    만약 압축 파일이 /home/user/ 디렉토리 아래 있다면 다음과 같이 실행한다. 
   

$sudo chown oracle:oinstall /home/user/10201_database_linux32.zip
$sudo chmod 775 /home/user/10201_database_linux32.zip
$sudo mv /home/user/10201_database_linux32.zip /home/oracle
$su - oracle
$unzip 10201_database_linux32.zip


2. 재부팅을 해주자. (reboot)
   
   여기서 재부팅을 안해줄 경우 아래와 같은 에러를 만날수도 있다.



3)  재부팅후, oracle 유저로 접속한 후 터미널에서 설치 실행파일(runlnstaller)를 실행한다.
     이때, 설치실행창의 문자가 깨져서 출력되는 것을 막기 위해 간단한 언어 설정을 꼭 해주자.

$expert LANG=C
$/home/oracle/database/runInstaller



4) 설치를 진행한다.  (난 Basic installation을 선택하였다. ) 
   
   설치 화면에서 부터는 Windows에서 설치하는방법과 동일하지만 한가지 주의 해야 될 부분은 SID입력
   부분이다. 위 6) 환경변수 설정 에서 환경변수 설정에서 입력한 SID인 orcl10을 입력하지 않으면 
   안된다. 
   


 "Inventory directory" 를 "/oracle/oraInventory"로 하고
시스템그룹은 "oinstall"로 지정하고 다음  default 값을 사용하면 될 것 같다.


 설치된 것에 대한 개요를 보여준다. "INSTALL" 클릭


설치가 진행된다.




중간에 설치된 정보를 보여주는 창이 뜸 "OK" 


설치 .. ing (iSQL 등이 설치되고 있다. ㅎ)


거의 막바지다. 중간에 아래와 같은 창이 뜬다면 터미널을 하나 열어서 "root" 계정으로 명시된 스크립트를 실행해 준다.
  

#/oracle/oraInventory/orainstRoot.sh
#/oracle/10g/root.sh


스크립트 실행이 끝나면 설치화면 창으로 돌아와 "OK"를 눌러준다.
스크립트 실행이 곤란하면 설치 완료후 실행해 주어도 무방 한 것 같다. ^^;;


설치가 완료되었다.
아래에 표시되는 URL 정보는 적어두었다가 활용하도록 하자. ^^



4. 설치완료 후 사용을 위한 환경구성

?1) 재부팅 후 oracle이 유저가 아닌 본인의 원래유저로 로그인해 아래 파일을 수정해 준다.

$sudo vim /etc/oratab


etc밑에 oratab파일에서 orcl10:/oracle/10g:N부분을 orcl10:/oracle/10g:Y로 수정한다. 덧붙여 설명하면 orcl10은 인스턴스이고 가운데 부분은 ORACLE_HOME 마지막 부분은 오라클 인스턴스의 자동 실행 여부(Y/N)이다.

orcl10:/oracle/10g:Y


2) 오라클 유저(oracle)로 로그인한 후 오라클 리스너의 절대 패스를 수정해 준다.

$su - oracle
$vim $ORACLE_HOME/bin/dbstart


다음라인을 찾아.

# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
else
LOG=$ORACLE_HOME_LISTNER/listener.log


아래와 같이 패스를 수정해 준다.

ORACLE_HOME_LISTNER=/oracle/10g


이제 모든 설치가 끝났다.
(0 ^o^)0

다음은 실행화면 ^^*  열공합시다.



출처 : 모르겠어요ㅠㅠ 메일주세요 (-->공지확인)

# 필요한 rpm (이건 꼭 필요한것이므로 Linux CD에서 찾아 전부 설치해야한다.)

root 계정에서 rpm -Uvh 설치할거.rpm 이렇게 주면서 쭉~ 설치 하면 된다.



rpm -Uvh compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -Uvh elfutils-libelf-0.137-3.el5.i386.rpm
rpm -Uvh elfutils-libelf-devel-0.137-3.el5.i386.rpm
rpm -Uvh glibc-2.5-58.i386.rpm
rpm -Uvh glibc-devel-2.5-58.i386.rpm
rpm -Uvh glibc-common-2.5-58.i386.rpm
rpm -Uvh gcc-4.1.2-50.el5.i386.rpm
rpm -Uvh gcc-c++-4.1.2-50.el5.i386.rpm
rpm -Uvh kernel-headers-2.6.18-238.el5.i386.rpm
rpm -Uvh libgcc-4.1.2-50.el5.i386.rpm
rpm -Uvh libaio-0.3.106-5.i386.rpm
rpm -Uvh libaio-devel-0.3.106-5.i386.rpm
rpm -Uvh libstdc++-4.1.2-50.el5.i386.rpm
rpm -Uvh libstdc++-devel-4.1.2-50.el5.i386.rpm
rpm -Uvh sysstat-7.0.2-3.el5_5.1.i386.rpm
rpm -Uvh binutils-2.17.50.0.6-14.el5.i386.rpm
rpm -Uvh unixODBC-2.2.11-7.1.i386.rpm
rpm -Uvh unixODBC-devel-2.2.11-7.1.i386.rpm
rpm -Uvh make-3.81-3.el5.i386.rpm
rpm -Uvh pdksh-5.2.14-36.el5.i386.rpm

 


 

 

 

 

# sysctl.conf에 추가

 cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
EOF

 /sbin/sysctl -p

 

 

 

# oracle 사용자 계정의 Shell Limit 설정


cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF

 

cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF

 

 


# oracle 그룹 및 사용자 계정 생성

 /usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba

/usr/sbin/useradd -g oinstall -G dba oracle

mkdir -p /u01/app/oracle

chmod 775 -R /u01/app/oracle

chown -R oracle:oinstall /u01/app

passwd oracle

 

 

 

# bash_profile 추가


export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=TESTDB
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export DISPLAY=:0.




 

# 압축을 푼다

unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip



# 설치를 시작한다.

 

./runInstaller 






설치 할때 물어보는데 일단 테스트용으로 쓰는것이므로 띵까고 넘어간다.






Install database software only를 선택한다.
오라클 엔진만 설치하고 DB는 이후에 설치하는걸 권장한다.






Single로 설치한다.






언어를 선택한다. 한국어 선택하고 입맛에 따라 언어 더 선택하면 된다.






오라클 기능을 대부분 테스트 해보고 싶다면 Enterprise Edition을 선택한다.






Oracle이 install되는 타켓을 잘 확인하고 한다.






Inventory Directory를 /u01/app/oraInventory로 설정을 한다.






Group이 잘되었는지 확인한다.






설치 내역을 서머리 한것이다. 내가 원하는데로 되었는지 잘 확인한다.






이제 설치를 슬~ 슬~ 설치를 시작한다.






root에서 2개의 스크립트를 실행한다.






오라클 엔진 설치가 끝났다.









# 리스너를 구성한다.
 

netca






Listener configuration을 선택한다.






Add를 선택한다.






기본으로 설정된느 LISTENER로 한다.






TCP를 선택한다.






기본 설정인 1521로 설정한다.






더 설치 할꺼 없으니 No






구성을 끝낸다.










# DB를 구성한다. 

dbca



다음을 선택한다.






create database를 선택한다.






General로 선택을 한다. 






TESTDB로 선택해서 한다.






EM을 선택한다.






암호를 설정한다.






FileSystem을 선택한다.





아카이브 로그 모드로 선택을 한다.






Sample Schemas를 선택한다. 






메모리 사이즈를 선택한다.






Character set은 KO16MSWIN949로 선택한다.






콘트롤파일, 데이터파일, 리두로그의 위치와 사이즈를 조정해서 한다.





Finish를 선택한다.






DB 구성에 대한 서머리다. 꼭 한번 쭉 보고서 내역을 한번봐야 한다. 그냥 ok 버튼을 누르지 마라.







설치를 쭉~ 쭉 한다.






sqlplus와 EM에 접속을 해서 정상적으로 돌아가는지 한번 확인해본다.

 

 

$ORACLE_HOME/admin/testdb/pfile 디렉리

  에 가면 init.ora.1222010183035 이런식으로 숨겨진 pfile 이 존재 한다.

  이파일을 $ORACLE_HOME/product/11.2.0/db_1/dbs/ 디렉토리의 inittestdb.ora라는 파일로 복사한다.

sqlplus 를 실행해서 startup 을 실행
빠져나온뒤 lsnrctl start


#####한글설정
본인의 테스트 기준...


#####SQLPLUS 한글 깨짐 현상(.bash_profile 에 추가)


현재 폴더 기준 각 디렉토리 용량 조회
[root@test/]# du -sh /*

전체용량
[root@test/]# df -h

데이터베이스의 캐릭터셋 설정 확인 (설정 값이 한글이 지원이 안되는 캐릭터셋으로 되어 있는 경우에는 한글 입출력이 불가능하다.)

SQL> select * from nls_database_parameters;


PARAMETER                      VALUE
------------------------------ ----------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               AL32UTF8
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              11.1.0.6.0


캐릭터셋을 확인하고 (AL32UTF8)

리눅스 쉘에서, 

$ export NLS_LANG=KOREAN_KOREA.AL32UTF8

$ sqlplus / as sysdba


SQL*Plus: Release 11.1.0.6.0 - Production on 월 11월 10 17:31:57 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


다음에 접속됨:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>
SQL> select '한글' from dual;


'한글'
------
한글

SQL>


sqlplus 인터페이스도 한글로 출력되고, 데이터도 한글로 잘 출력된다.


NLS_LANG 파마리터 설정을 해제하면

$ unset NLS_LANG

$ sqlplus / as sysdba


SQL*Plus: Release 11.1.0.6.0 - Production on Mon Nov 10 17:33:49 2008

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select '한글' from dual;


'???????'
---------------------
???????

SQL> 

export NLS_LANG=KOREAN_KOREA.KO16MSWIN949


sql>create directory datadmp as '경로';
sql>grant read, write on directory datadmp to 계정;
c:\>expdp system/manager schemas=SMS directory=datadmp dumpfile=SMS.DMP


계정이 생성되어있는지 확인(생성 안되어있는상태에서 성공했음)
sql>create directory datadmp as '경로';
# impdp system/manager schemas=SMS directory=datadmp dumpfile=SMS.DMP remap_schema=익스포트한계정:임포트할계정




abcd
aaa bbb ccc ddd eee fff
aaa1
aaa1
aaa1
aaa1
aaa1
aaa1
aaa1
aaa1
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
aaa1 bbb2 ccc3 ddd1 eee2 fff3
mssql
:select CONVERT(CHAR(8),getdate(),112)+REPLACE(CONVERT(CHAR(8),getdate(),108),':','')
mysql 
:select convert(date_format(now(),'%Y%m%d%H%i'),char(12));

oracle 
:select to_char(sysdate, 'yyyymmddhh24mi') from dual;
@echo off
setlocal
 
:: str 변수 초기화
set str=
 
:RE
set /p str=복사해올 파일명 입력:
if "%str%" == "" goto RE

echo 방금 입력하신 문자열은 %str% 입니다.
copy d:\%str%.exe d:\job
rem 이런식으로 사용 하면 된다~~(주석임)


java Calendar 시간과 서버시간 불일치 처리

Calendar runTimeCal = Calendar.getInstance();
System.out.println ("현재 타임존 : " + runTimeCal.getTimeZone().getDisplayName() );
TimeZone tz = TimeZone.getTimeZone("GMT+09:00");
runTimeCal.setTimeZone(tz);




위와 같이 처리하면 나온다.

윈도우 비스타에선 운영체제의 timezone을 한국으로 설정해도
Java 관련 프로그램은 계속 그리니치 표준시로 나온다.
아래 옵션을 지정해주면 정상으로 출력된다.
-Duser.timezone=Asia/Seoul

 

 

출처는 까먹음(죄송해요)..ㅠㅠ 

@echo off
java -cp lib/jtds-1.2.jar;lib/log4j-1.2.15.jar;lib/xstream-1.3.1.jar;./;%CLASSPATH% mgr.MainEngine


set root_path=d:\test
set lib_home=%root_path%/lib
set classpath=%lib_home%/xstream-1.3.1.jar;%lib_home%/jtds-1.2.jar;%lib_home%/log4j-1.2.15.jar;

java mgr.MainEngine 

-- 컬럼수 조회 

import java.sql.*;

try{
       String driver = "oracle.jdbc.driver.OracleDriver";
       String url = "jdbc:oracle:thin:@localhost:1521:ORCL";

       Class.forName(driver);
       Connection conn = DriverManager.getConnection(url, "userid", "passwd");

       String Qry=" select * from ab";

       Statement Stmt = conn.createStatement();
       ResultSet Rs = Stmt.ExecuteQuery(Qry);

 

//**** 컬럼 갯수를 알고싶을때
       ResultSetMetaData Rsmd = Rs.getMetaData();

       int ColumnCount=Rsmd.getColumnCount();

//****

 

}catch(Exception e){
       e.printStackTrace()
}


// 패키지 컴파일
C:\temp>javac my\main\TestPackge.java


// 패키지 실행
C:\temp>java my.main/TestPackge
Test Package
Test_one 

// 오라클 패키지 프로시저 선언
 

CREATE OR REPLACE PACKAGE SDK_RESULT_PKG
AS 
   TYPE REF_TYPE IS REF CURSOR;
   PROCEDURE SDK_RESULT(
           V_RESULT OUT SDK_RESULT_PKG.REF_TYPE, 
           MSG_TYPE IN VARCHAR2, 
       FROMDATE IN VARCHAR2,
       TODATE IN VARCHAR2
      );
END SDK_RESULT_PKG;

// 오라클 패키지 프로시저 구현

CREATE OR REPLACE PACKAGE BODY SDK_RESULT_PKG 
AS
   PROCEDURE SDK_RESULT(
       V_RESULT OUT SDK_RESULT_PKG.REF_TYPE, 
       MSG_TYPE IN VARCHAR2, 
       FROMDATE IN VARCHAR2,
       TODATE IN VARCHAR2
      )
   AS
       SMS_SQL VARCHAR2(5000);
       MMS_SQL VARCHAR2(5000);
       VMS_SQL VARCHAR2(5000);
       FMS_SQL VARCHAR2(5000);
       SURVEY_SQL VARCHAR2(5000);
       
     BEGIN
       SMS_SQL := 'SELECT MSG,  ';
       SMS_SQL := SMS_SQL || '     USER_ID, ';
       SMS_SQL := SMS_SQL || '     SEND_DATE, ';
       SMS_SQL := SMS_SQL || '     0 AS REPLY_TYPE, ';
       SMS_SQL := SMS_SQL || '     SUM(DEST_COUNT) AS DEST_COUNT, ';
       SMS_SQL := SMS_SQL || '     SUM(SUCC_COUNT) AS SUCC_COUNT, ';
       SMS_SQL := SMS_SQL || '     SUM(FAIL_COUNT) AS FAIL_COUNT, ';
       SMS_SQL := SMS_SQL || '     SUM((DEST_COUNT-SUCC_COUNT) FAIL_COUNT) AS ING_COUNT, ';
       SMS_SQL := SMS_SQL || '     CALLBACK, ';
       SMS_SQL := SMS_SQL || '     SUBSTR(XMLAGG(XMLELEMENT(AB,MSG_ID || ''^'') ORDER BY MSG_ID).EXTRACT(''//text()''),1) AS MSG_ID ';
       SMS_SQL := SMS_SQL || '     FROM  TBL';
       SMS_SQL := SMS_SQL || '     GROUP BY SMS_MSG, USER_ID, SEND_DATE, CALLBACK, RESERVED5';
    
    OPEN V_RESULT FOR SMS_SQL;

  END SDK_RESULT; 
END SDK_RESULT_PKG;


// 자바 실행
// 자바 실행

Connection Conn=null;
ResultSet Rs = null;
CallableStatement cstmt = null;

DBClassTEST DBClass = new DBClassTEST()

DBClass.DB_Info();
DBClass.Connect();
Conn = DBClass.Conn();

//**** DB 연결 부분은 알아서 구현 위 내용은 임시 클래스
 
Qry = "BEGIN SDK_RESULT_PKG.SDK_RESULT(?,?,?,?); END;";

cstmt = Conn.prepareCall(Qry);
cstmt.registerOutParameter(1,OracleTypes.CURSOR);
cstmt.setString(2,"SMS");
cstmt.setString(3,"200901010000");
cstmt.setString(4,"201012312359");

cstmt.execute();
Rs = ((OracleCallableStatement)cstmt).getCursor(1);

ColumnName="TEST"; //컬럼이름

while(Rs.next()){
 System.out.println(Rs.getString(ColumnName));
}
Rs.close();
cstmt.close();
Conn.close();
DBClass.DB_Close();


+ Recent posts