SELECT와 INSERT를 동시에 ,,그러나 Java안의 변수를 사용! 0 2 2,894

by 권순순 [SQL Query] SELECT INSERT Java Jar파일 [2019.02.21 23:32:18]


프로젝트 설명 : 현재 HDFS<=> Java <=> Oracle  연동중에 있으며 1라인 읽을때 마다 Token 분리되고있음. 

 java 소스 일부 - 토큰으로 자른 배열형태 : array[0] = r_key , array[1]=date ,array[2]=LOT ...

java 소스 일부-  머신러닝 후 기계가 예측한값 => return 값으로 predict 가 산출됨. (predict 는 정상/비정상 두가지중 하나의 값이 선택되어서 산출) 

 

Oracle - RPT테이블(Oracle 테이블이름)에는 현재 Date,LOT,공장가동시간,Result 등 컬럼이 있는 형태.

 

Oracle 질문.

INSERT INTO RPT테이블 (RESULT) VALUES ('"+predict+'")

                                     |                          |  

                        rpt테이블컬럼 result           (java 변수 predict)

IF
SELECT LOT,RESULT FROM RPT테이블 WHERE LOT= '"+array[2]'" 

                  |                                                     |

        (rpt테이블 컬럼 lot,result)                       (rpt테이블컬럼 LOT = java 변수 array[2])

THEN 

INSERT INTO RPT테이블(RESULT) VALUES ('"+predict+'")

                       |                                        |

     (rpt테이블(rpt테이블 컬럼 result)        (java변수 predict)

 

이런식으로

RPT테이블에 predict(java 변수)를 INSERT 를 하고싶습니다.  rpt테이블의 result컬럼에 insert하고싶습니다.

조건으로 WHERE LOT(Oracle 컬럼) = '"+array[2]'"   인데

 

대략적으로 구상한것인데,,어떻게하면 완벽하게 할수있을까요.?

by 허진영 [2019.02.22 08:00:31]

오라클 부분에서 select 하는 이유가 있는지 궁금 합니다. 

일반 쿼리로 한다면 insert select 구문에서 case 로 변수값이 있을경우 서브 쿼리로 대체 하는 방법으로 할 수 있을거 같고 

store procedure 를 개발 하시면 value object 처럼 type를 만들어서 자바에서 struct 로 변수 값 전체를 넘겨 

절차식으로 구현하셔도 될듯 합니다.


by 마농 [2019.02.26 08:23:38]

INSERT 는 새로운 행을 삽입하는 구문입니다.
기존 행의 컬럼에 값을 넣는 것은 UPDATE 입니다.
 

UPDATE rpt
   SET result = predict
 WHERE lot    = array[2]
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입