MERGE INTO 등록할_테이블_명 TB_NM

  USING(SELECT USER_NO FROM USER_TABLE WHERE USER_NO = '001') U_TB --> 검색할 쿼리

  ON (TB_NM.USER_NO = U_TB.USER_NO)  --> INSERT, UPDATE 조건

    WHEN MATCHED THEN -- 조건에 일치할경우 이하의 쿼리 실행 (UPDATE)

        UPDATE

        SET TB_NM.USER_NO = '001',

                TB_NM.USER_NAME = '유저명'

    WHEN NOT MATCHED THEN --> 조건이 일치하지 않을경우 이하의 쿼리 실행 (INSERT) 

        INSERT (TB_NM.USER_NO, TB_NM.USER_NAME)

        VALUES ('001', '유저명')

 

 

만약 한개의 테이블에서 검색/입력/수정을 할 경우에는 DUAL을 사용하는 편이 낫다.

============================ 이하 예시 ============================

 

MERGE INTO USER_TABLE A

  USING DUAL

       ON (A.USER_NO = '10')

WHEN MATCHED THEN

UPDATE SET

             DEPT_NO = '30'

WHEN NOT MATCHED THEN

INSERT (USER_NO, USER_NM, DEPT_NO)

VALUES('10', '유저명', '30')

 

 

1. 위의 query는 정상인데 ORA-00900 : SQL문이 부적합니다.  라는 오류가 발생한다면 

    JAVA에서 dataAccesser.update 를 사용한게 아니라 dataAccesser.query 를 사용했기 때문.

 

2. 한개의 테이블에서 검색/입력/수정할 경우에는 USING DUAL 을 사용, ON에 직접 조건 값을 입력해준다.

 

○출처ㅣm.blog.naver.com/PostList.nhn?blogId=bluefish115

[web server ]                                      [Was] 
*정적데이타는 직접처리                      //    web container
클라이언트요청을 컨테이너로 전송--->  //     동적데이타 처리
클라이언트에 전달                            //     <-웹서버로 전달

 

웹 서버 (Web Server)

클라이언트의 요청을 받아 정적인페이지(웹페이지, 이미지)를 HTTP 프로토콜을 통해 전송한다. - 클라이언트의 요청 중 자체적으로 처리할 수 없는 정보에 대해서는 WAS에 처리를 요청한다. - 요청이 많을 경우 웹서버에서는 웹문서를 WAS에서는 JSP페이지를 양분하여 처리 함으로서 서버 의 부담을 줄여주는 역할도 한다.

ex) Apache, Nginx, IIS, WebtoB 등 

웹 어플리케이션 서버 (Web Application Server - WAS)

웹서버에서 처리할 수 없는 동적인 정보를 처리하여 웹서버에 정적인 정보를 제공한다. - 일반적으로 웹서버의 기능을 내제하고 있어 웹 서버 없이도 서비스가 가능하다.

ex) Tomcat, WebLogic, WebSphere, Jeus, JBoss 등 

 

[WAS 추가설명] 
DB조회나 비즈니스 로직처리를 위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨어
웹기반 3계층 컴퓨팅 환경에서 서버환경의 애플리케이션 서버와 같은 역할을 하며, 트랜잭션 처리 , 타기종간 연동 등을 주된 기능으로 함
Server 단에서 Application을 동작할 수 잇도록 지원함
기존 웹 서버와 달리 동적인 요구에 대응하기 위해 적합한 형태로 변화 
Web Client(브라우저)에게는 결과값만 전송함
Container(컨테이너)라는 용어로 쓰이며, 초창기는 CGI, 그 후에서는 Servlet, JSP, ASP 등의 프로그램으로 사용됨

 

- WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있습니다.

- 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없습니다.

- 규모가 커질수록 웹 서버와 WAS를 분리합니다.

- 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리합니다.

 

요즘 WAS도 계속 진화하면서 자체적으로 웹 서버 기능을 내장하고 있어서 이클립스에서 웹 서버 용도로 톰캣을 많이 사용하는 것이다. 단, 학부 수준의 웹 프로젝트는 과제 수준이지만 꽤 규모가 있는 프로젝트가 될수록 웹 서버와 웹 어플리케이션서버의 분리는 필수적이다.

 

웹 서버(ex. Apache) 는 static한 파일 (js, img, css) 등 변동이 없는 파일을 서비스하기 위해 사용되어 왔습니다다. 웹 어플리케이션 서버(이하 WAS, ex. Tomcat) 는 사용자의 요청 등에 따라 유동적인 서비스를 제공하기 위해 사용합니다. (예를 들자면, 키워드 검색을 하면 키워드에 근거하여 데이터를 DB에서 뽑아내고 화면에 해당 정보만 구성)

만약 WAS없이 웹 서버만으로 웹 서비스를 구축한다면 사용자의 요청에 대한 결과값을 미리 전부 static 파일로 만들어 놓아야하기 때문에 자원(인력, 시간 포함)이 절대적으로 부족합니다.

학교 과제나 개인 프로젝트를 개발할 때는 통상 WAS에서 웹서버 모듈을 포함하여 기능을 제공하기 때문에 웹서버를 별도로 개발 서버에 설치를 하지 않았을 것입니다.

 

'ServerSide' 카테고리의 다른 글

PermGen 영역 설정  (0) 2015.12.07

▶ 상수란?
변하지 않는 값, 특정한 값이나 의미가 있는 값
     상수선언 변수명 = 상수 값;
-상수의 종류
논리형 상수, 문자형 상수, 정수형 상수, 실수형 상수…
☞ 논리형 상수 = true와 false만 가진다. boolean a=true;
☞ 문자형 상수 = 할당되는 값은 ‘ ’에 들어간다. char a=‘A’;
☞ 정수형 상수 = 일반 숫자를 의미한다. int a=12;
☞ 실수형 상수 float a=3.122222f;  double a=123.1234567;

 

소수점이 없는 정수형/ 정수형 상수
•‘연필이 필통에 5자루 있다.’
• ‘연필 한 타스는 2400원인데, 한 타스에는 연필이 12자루가 있다.’
•5, 2400, 12
–와 같이 소수점이 없는 데이터가 정수형이다.
–그 자체에 의미가 있고
–프로그램 실행 중에 그 값을 절대 변경할 수 없기에 이를 상수(Constant)라 한다.

 

소수점이 있는 실수형
•int pi=3.141592; //컴파일 에러
•double pi=3.142592;
•float pi=3.142592; //컴파일 에러
•float pi=3.142592f;

 

원의면적 구하는 java sample 

 

▶ 변수란? 프로그램에 전달되는 정보나 그 밖의 상황에 따라 바뀔 수 있는 값을 의미한다 즉 상수를 기억시킬 수 있는 기억공간
☞ 변수선언이란? 자바가상머신에게 데이터를 저장하기 위한, 메모리를 할당해 달라고 부탁하는 것이다.
변수선언 데이터형 변수명;
-변수 선언시 주의사항 1, 숫자로 시작하면 안 된다. (하지만 뒤에는 올 수 있다.) 2, 특수문자는 들어갈 수 없다. (예외 _ $는 들어올수 있다.) 3, 예약어는 들어 갈수 없다.

 

자료 선언과 할당

변수 사용시 주의 점

 

정수형 & 실수형

+ Recent posts