반응형

엑셀로 받게되는 다량의 데이터를 어떻게 하면 INSERT문을 만들어서 쉽게 Database에 입력할 수 있을까?

 

에 대한 대답으로 스터디를 시작한다.

 

1. TESTTBLE을 만들어줌

2. 엑셀 데이터

3. 해당코드값에 따른 값을 데이터베이스에 넣어줄건데, Y/N 여부가 N인경우 VALUE4에 VLUE3를 중복해서 넣는다고 가정

 

INSERT INTO TESTTBLE ('CODE', 'VALUE', 'VALUE2', 'VALUE3', 'VALUE4')
VALUES ('A','H','K','M')

이런식으로 24번을 다 넣어주어야할까?

아니다~!

엑셀의 좋은기능을 한번 살펴보자

 

해당 셀옆에 ="" 를 쓰면 된다.

큰따옴표안에, 생성할 쿼리를 작성해주는데,

셀을 지칭할때에는 "&셀번호&" 이렇게 입력해주면된다.

그리고 아래로 쭈욱~ 스크롤내려주면 이와같이 대량의 INSERT문이 생성됨.

="INSERT INTO TESTTBL VALUES('"&A2&"','"&B2&"','"&C2&"','"&D2&"','"&E2&"');"

 

해당쿼리를 실행시키면 잘들어가는것을 볼 수 있다.

 

앗 그런데우리는 y/n여부에따라 네번째컬럼의값을 다르게하기로 했었다.

그렇다면 UPDATE문을 이용한다.

="UPDATE TESTTBL SET VALUE4= '"&D22&"' WHERE CODE = '"&A22&"';"

 

 

해당쿼리실행후

 

 

잘업데이트된것을 볼 수 있다!

끝!

 

 

반응형
반응형

저번주금요일, 퇴근직전 분명 개발서버에선 잘만 조회되는 쿼리가 운영서버에서는 조회되지 않았다...

운영서버로그를 볼 수 없어서 너무답답했는데, 

오늘 새로운 마음으로 천천히 조회되는 쿼리부터 한자한자 입력해보며 비교해보고 이유를 알아내버렸다..... 울뻔 😪 

 

 

---------------------------------------------------복사해온글 입니다 ↓----------------------------------------------------------------

 

[문제]

같은 소스인데도 불구하고 테스트계에서는 에러가 발생하지 않았지만 운영계에서 ORA-01861 에러가 발생했다.

에러로그는 --> (literal does not match format string)

 

[이유]

OS의 LANG 설정이 달라서 문자열을 묵시적으로 날짜로 변환을 못해서 발생하는 에러라고 한다.

(리눅스 문자셋(캐릭터셋))

보통 서버를 교체하고 나서 LANG에 관련된 설정을 하지 않거나

비교하는 대상의 두 서버의 LANG설정이 다르면 발생한다.

내경우에는 테스트계는 기존에 사용하던 서버였고, 운영계는 이번에 신설된 서버였다.

LANG설정이 누락된 듯 싶어서

테스트계와 운영계의 LANG설정을 각각 확인해보았다.

 

리눅스 명령어

echo @LANG

locale

 

[해결방법]

서버의 LANG설정을 에러가 나지 않는 환경의 설정으로 동일하게 맞춤

 

에러가 나는 쿼리에 분명히 to_date나 to_char함수의 사용이 있을 거고

분명 to_date(#start_date#)이런 식으로 날짜 형식에 대한 정의가 빠져있을 것이다.

따라서, to_date, to_char 사용한 부분들을 찾아 명시적으로 프로그래밍을 해주면 해결된다.

ex) to_date(#start_date#)  >>>>>> to_date(#start_date#), 'YYYYMMDD')

 

https://mamoruoppa.tistory.com/106 

 

[oracle] 오라클 to_char to_date locale 문제(literal does not match format string ora-01861) 리눅스 캐릭터셋 변경

mariadb만 사용하다가 오라클을 사용하니 이런 경우가 발생해서 시간을 엄청 소비했음.. mariadb는 format을 잘 변경해주는데 오라클은 엄격해서 서운했음.. 아무튼 아래 내용대로 형식을 넣어서 해봤

mamoruoppa.tistory.com

 

반응형
반응형

오늘은 안쓰고 자려다가 오늘 쿼리를 수정하며 이건 꼭 정리해 놓아야지 했던 것이 생각나서 끄적여본다.

 

이미 기존 데이터에 구분값이 사장(A001), 임원(A002), 팀장(A003), 사원(A004)의 코드 값으로 구분되어 들어가 있었다고 가정하였을때, 갑자기 사장과 임원 사이에 부사장이라는 직급이 생겼다고 가정하자.

기존에 ORDER BY를 하여 사장 > 임원 > 팀장 > 사원 순으로 조회되던 데이터를

                                           사장 > 부사장 > 임원 > 팀장 > 사원 순으로 조회되어야 한다고 한다.

 

이런경우 임원(A002), 팀장(A003), 사원(A004)의 코드 값을 하나씩 늘려 임원(A003), 팀장(A004), 사원(A005) 로 업데이트 하고, 부사장의 코드를 A002로 다시 정리하여 조회하는 방법도 있겠지만, 

이미 공통으로 사용되고 있던 코드이기 때문에, 코드의 값을 바꾸는 것이 내키지 않는 경우가 있다. 

 

그런경우!

부사장에 'A005'코드를 부여하고 조회할때 

ORDER BY 절 안에서 CASE문을 사용해 정렬해주면 깔끔하게 해결된다.

 

SELECT 직급, 이름
FROM 회사사람들
ORDER BY 직급

 

👇

 

SELECT 직급, 이름
FROM 회사사람들
ORDER BY (CASE 직급 WHEN 'A001' THEN 1
                   WHEN 'A002' THEN 3
                   WHEN 'A003' THEN 4
                   WHEN 'A004' THEN 5
                   WHEN 'A005' THEN 2
          END
          )ASC

 

 

끝!

 

 

 

 

반응형
반응형

SQLD (46회 시험 후기_20220904)
2022년 약 1년전의 나는 2023년이 되기 전 그동안 미뤄왔던 전공관련 자격증 1개 취득하기, 영어회화공부하기 라는 목표를 세웠었다.
그리고 6개월 정도를 나름의 이유같은 핑계로 목표만 세워둔 채 시간을 보냈고, 또 2개월 정도를 시간이 가고 있음을 아는 상태로 해야하는데 하는 찝찝한 마음으로 보냈다.
더이상 찝찝한 마음으로 시간을 보내기도 싫었고, 찝찝한 마음을 2022년을 마무리하는 날까지 가져가고 싶지 않았다.
그래서 공부를 하지 않았지만 자격증시험을 신청하기로 한다.
자격증 시험을 신청한 뒤 여러 블로그들을 읽어보며 단기취득자들의 합격수기를 읽어보았고, 💕팁들을 알게되었다.

🙌 추천하는 방법

1. 인터넷을 검색하여 SQLD 정리본을 찾는다.
2. 그냥한번 훑어보듯 읽어본다.
3. 그렇게 3번정도 회독한다.
4. SQLD 노랭이 [SQL자격검정실전문제] 책을 구매한다. ◀미리미리
5. 그냥문제를 풀어보고, 틀린문제와 맞은 문제를 해설을 보며 이해한다. 이해가 안되도 넘어간다.
6. 다음날은 맨앞장부터 전날풀었던 부분까지 다시 풀어보고, 두번이상 틀린문제는 🤔🤷‍♂️ 화내면서 읽어본다.
7. 정리본을 다시한번 읽어보며 정독한다.
8. 시험장에 정리본과 가장중요✔신분증 을 지참하도록한다 신분증 없으면 시험못본다!! (with 검정볼팬, 컴퓨터용사인팬)
9. 그리고 편안한 몸과 마음으로 시험을 본다.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

시험결과는👀
9월 30일 결과가 나오지만, 29일날 미리 볼 수 있는 방법이 있다고한다.


근데 왠지 10일밖에 공부를 안해서그런가
붙었을것 만 같은 근거없는 자신감이 스믈스믈올라온다.😆✨🎉🎊


합격예정결과가 23일날 나왔당신기싱기
이제영어공부를 해야하는데 해야만한다....

아! 46회 후기는
1과목에서 배신감을 좀 느꼈다고한다............. ?!
개념문제의 난이도가 생각했던 난이도의 예상을 벗어나는 정도였다.
끝.
아그리고 정말 아무도 마주치지 않을거라고 생각했던 시험장에서 아는이를 만날 수 있음.........
생각보다 고사장이 별로 없고,,,,,,,, 그렇다고한다................특히 지방의경우...........^_^;

반응형

'ORACLE > SQLD' 카테고리의 다른 글

[SQLD] 내용정리 1장. 데이터 모델링의 이해  (0) 2022.08.22

+ Recent posts