본문 바로가기

공부33

MSSQL DB 오프라인 계속 안될 때 서론 sql management studio 로 UI상에서 오프라인을 하게 되면 이상하게 잘 안될 때가 많다. 왜냐하면 트랙잭션을 안 죽이고 명령어를 때렸기 때문에 완료 될 때까지 진행이 되질 않는다. 데이터베이스 '***'이(가) 전환중입니다. 나중에 문을 실행하십시오 (오류: 952) 라는 식으로 오류도 발생하여 DB이용 자체가 불가능하다. 락이 걸려있기 때문에 온라인도 안될 것이다. 4일이 지나도 오프라인이 안 되길래 구글링을 해도 DB에 락이 걸려서 대부분의 명령어가 먹히질 않았다. 어쩌다 수상한게 보여서 그걸 찾아보니 문제가 보였는데 다른 분들도 도움 되시길 본론 sp_help sp helpdb 데이터베이스 '***'이(가) 전환중입니다. 나중에 문을 실행하십시오 (오류: 952) DB ID를 .. 2018. 12. 11.
mssql 대용량 INSERT 구문, 10000건 정도 서론 오라클에서는 nologgin 이랑 힌트로 insert select 할 시에 사용하면 되었는데 mssql은 뭘해야 될지 몰랐다. 그래서 검색해보니 그냥 아래와 같이 하면 될 것 같다. 10만건 넘어가면 굳이 안해도 될 것 같다. 본론 tablock insert into mssql.스키마.dbo.테이블명 with(tablock) select * from 테이블명 with(nolock) 아래는 굳이 nolock은 안해도 될 것 같고 insert할 테이블에 talock 옵션만 걸면 아예 로그를 안 쌓는건 아니고 최소한의 로그를 쌓기 때문에 좀 더 빨리 insert가 가능해진다. dblink가 걸린 상태에서 다른 DB에서 동일 테이블을 만들고 insert를 해야하는 경우에 만건 정도 테이블이면 그래도 빨리 .. 2018. 12. 7.
MSSQL - SQLSTATE = 22007 서론 보통은 날짜를 날짜형 데이터 타입으로 저장하기 때문에 이런 오류를 볼 경우가 적지만 날짜를 문자형으로 처리하는 곳도 있다. 이때 문자형을 날짜형으로 CONVERT 안해주고 단순히 문자로 범위를 넣어 조회를 하면 MSSQL에서 자동으로 CONVERT를 하여 조회하게 되는데 이때 문자형을 날짜형으로 변경하다 생기는 문제 이다. 본론 SQLSTATE = 22007 프로그램 사용시 해당 오류가 뜨면서 조회가 안되는 경우도 있는데 원인은 문자형을 날짜형으로 변경하는 도중 비정상적인 날짜가 포함되어 있어 발생하는 현상이다. 비정상적인 날짜를 찾아 변경해 주면된다. SELECT AA, BB FROM ( SELECT ISDATE(LAST_END_DT) AS AA, LAST_END_DT AS BB FROM TABL.. 2018. 6. 14.
오라클 SQL 문법 공부24- CREATE TABLE 과 제약조건 서론 기본적인 DML 문법들은 끝이 난 것 같고 데이터를 SELECT, INSERT, UPDATE, DELETE 한다는 것은 특정 테이블의 데이터를 조작한다는 것이다. 조작을 하려면 당연히 테이블이 존재해야 하는데 이제 DDL 중에 하나인 CREATE TABLE.. 에 대해서 알아보고자 한다. 본론 기본 문법 --CREATE(생성하기) --컬럼명 데이터형 뒤에 DEFAULT SYSDATE 라고 하면 기본 값으로 들어간다. --TABLE SPACE USERS; --테이블을 저장하기 위해서 테이블을 묶어놓은 공간, 폴더 같은 공간, 논리적인 공간이다. --테이블이 만들어 질때 하나의 테이블스페이스 소속이 되어있어야 한다. --테이블들의 성격을 구분짓기 위한 테이블들의 집합체..? 성능상의 차이는 거의 없다... 2018. 3. 26.
오라클 SQL 문법 공부23- DELETE 와 TRUNCATE 서론 이번에는 테이블의 데이터를 지우는 DELETE 문에 대해서 알아보고자 한다. DELETE 문은 DML이라고 데이터 조작어이다. 말 그대로 데이터를 조작, DELETE이니 데이터를 조작하여 삭제하는 것이고 제목에서 표기한 TRUNCATE은 테이블의 모든 데이터를 즉시 삭제하는 명령어이며 DDL, 데이터 정의어 이다. 이 두가지의 가장 큰 차이점이라면 바로 COMMIT과 ROLLBACK은 DML에서 사용하는 것이고 DDL은 테이블을 생성하거나 수정, 삭제 할때 사용하는 것이며 명령어를 치는 즉시 실행이 된다. DML은 방금 실행한 명령어를 취소할 수 없다는 것이다. DELETE문과 TRUNCATE를 사용하는 방법은 아래에서 확인하자. 본론 DELETE --DELETE --DELETE 문장은 데이터를 삭.. 2018. 3. 22.
오라클 SQL 문법 공부22- UPDATE 문 서론 이번에는 기존에 저장 되어있는 데이터를 변경해주는 UPDATE 문에 대해서 알아보고자 한다. UPDATE문은 특정 데이터만 변경하는 경우가 많기 때문에 WHERE 조건을 잘 명시해주어야 한다. 제대로 해주지 않으면 변경되지 않아야 하는 데이터도 변경이 되어버리기 때문에 조심해서 사용해야 한다. 본론 오다이바 --UPDATE --UPDATE 문장은 기존 데이터를 다른 데이터로 변경할 때 사용하는 방법입니다. --UPDATE TABLE_NAME --SET COLUMN = VALUE --WHERE 조건; --PROFESSOR 테이블에서 차범철 교수의 직급과 동일한 직급을 가진 교수들 중 현재 급여가 250만원이 안되는 경수들의 급여를 15% 인상하세요. --차범철 교수와 직급이 같은 교수들 중 급여가 2.. 2018. 3. 21.
오라클 SQL 문법 공부21- INSERT 문과 COMMIT, ROLLBACK 서론 오랜만에 오라클에 관련되서 글을 작성하는 것 같다. 이것저것 준비하느라 한동안 손을 놓았는데 조금씩 오라클에 관해서도 계속해서 올려볼까 한다. 이번에는 SELECT 이후에 데이터를 입력하는 INSERT문에 대해서 알아보고자 한다. 본론 오다이바 -- INSERT -- INSERT 명령어는 테이블에 새로운 데이터를 입력할 때 사용하는 명령어입니다. -- 데이터를 입혁할 때 숫자 값 이외에는 데이터를 '(홑따옴표)로 감싸야 합니다. -- 1)INSERT 를 사용하여 단일 행 입력하기 -- 문법 -- INSERT IN TO TABLE[(COL1, COL2...)] -- VALUES(VALUE1, VALUE 2.....); -- 1. 테이블의 전체 컬럼에 대한 값을 입력할때 -- INSERT INTO TA.. 2018. 3. 21.
오라클 SQL 문법 공부20- INLINE VIEW(인라인 뷰), 스칼라 서브쿼리 서론 서브쿼리에 이어 테이블처럼 사용되는 인라인 뷰에 대해서 알아보고자 한다. 보통 서브쿼리와 인라인 뷰가 괄호안에 있는 쿼리라 다 같은 서브쿼리라 생각할 수도 있지만 부르는 명칭은 확실히 다르다. WHERE절에 사용되는 서브쿼리는 말 그대로 서브쿼리이며 FROM 절에 테이블 명 대신 사용되는 서브쿼리형식이 바로 인라인 뷰라고 한다. 본론 INLINE VIEW(인라인 뷰)--INLINE View (인라인 뷰) --vIEW는 필요할 때 생성한 후 계속 여러 번 반복해서 재사용할 수 있습니다. --그러나 여러 번 사용할 필요 없이 1회만 필요한 View일 경우 SQL 문장의 FROM 절에 View 의 --서브쿼리 부분을 바로 적어주면 되며 이런 1회용 View를 INLINE View라고 합니다. --stud.. 2017. 11. 14.
오라클 SQL 문법 공부19- 서브쿼리(Sub Query) 서론 이번에는 조인 만큼 중요한 서브쿼리에 대해서 알아보겠다. 서브쿼리는 SELECT절에서 사용하는 스칼라 서브쿼리, FROM절에서 사용하는 인라인뷰, WHERE절에서 사용하는 서브쿼리가 있다. 간단히 말해 쿼리 안에 또 쿼리가 있는 것들을 보고 서브쿼리라고 한다. 본론 서브쿼리? --Sub Query (서브쿼리) --1) Sub Query 란? --Query안에 또 다른 Query가 있는 경우의 SQL 문장을 의미함 --SELECT (SELECT ....) -- 스칼라 서브쿼리, 성능상 문제가 많은 쿼리 --FROM (SELECT ....) -- 인라인뷰 --WHERE (SELECT ....) -- 서브쿼리 --2)사용목적 --SQL을 작성할 때 질문이 여러 가지가 한꺼번에 나오는 경우 여러번 SQL을.. 2017. 11. 7.