반응형

IT/DB 10

ORACLE에서 MSSQL 마이그레이션 시 참고사항

1. 인덱스 힌트를 제거한다. 2. NVL 함수를 ISNULL 혹은 IFNULL 함수로 변경한다. 3. SYSDATE 함수를 NOW() 함수로 변경한다. 4. TRUNC(SYSDATE)를 CONVERT(DATE,GETDATE(),12)로 변경한다. trunc(sysdate)를 하면 시간이 잘린 연,월,일이 나온다. 예)19/05/09 이와 같은 역할을 하는 CONVERT를 사용한다. 5. Outerjoin 변경 [Oracle] left outer joing : SELECT t1.*, t2.* FROM t1, t2 where t1.i1 = t2.i2(+); right outer joing: SELECT t1.*, t2.* FROM t1, t2 where t1.i1(+) = t2.i2; [MSSQL] lef..

IT/DB 2019.05.09

ORACLE에서 MSSQL로 PIVOT-FOR-IN 쿼리 변경 하는 방법

ORACLE에서 MSSQL로 PIVOT~FOR~IN 쿼리 변경시 참고사항 아래 두 쿼리는 같은 결과를 뽑아내는 쿼리이다. 기존 오라클->MSSQL로 변경할때 컬럼 ALIAS를 오라클에서와 같이 IN절에 쓸 수 없어 SELECT문으로 뽑아서 사용해야하며, IN절에 들어가는 값은 [] 대괄호로 묶어주어야 한다. (SELECT 절에서도 마찬가지.) ORACLE SELECT * FROM ( SELECT TEST_SEQ, TEST_NO, TEST_CONT FROM TEST_TABLE ) PIVOT ( SUM(TEST_CONT) FOR TEST_SEQ IN(1 TEST_01,2 TEST_02,3 TEST_03,4 TEST_04,5 TEST_05,6 TEST_06 ,7 TEST_07,8 TEST_08,9 TEST_0..

IT/DB 2019.05.08

[ORACLE] ORA-00932: 일관성 없는 데이터 유형: NUMBER이(가) 필요하지만 CHAR임 해결

MSSQL 쿼리와 ORACLE 쿼리를 비교하던 중 발견한 오류이다. 자꾸 뭐가 VARCHAR라는건가 했는데 알고보니 아래와 같은 이유 때문이었다. 오라클 문자열 붙이기를 할때는 SELECT '테스트'||'입니다' FROM DUAL 처럼 || 기호를 사용해야 하는데 MSSQL에서는 SELECT '테스트'+'입니다' 이런식으로 + 기호를 사용한다. 오라클 쿼리에서 문자열 붙이는 영역에 + 기호로 되어있는 부분을 || 기호로 바꾸어 주어 해결했다. SELECT T1.TEST1+T2.TEST2 FROM DUAL; SELECT T1.TEST1||T2.TEST2 FROM DUAL;

IT/DB 2019.05.03

[mssql] TOP, OFFSET 또는 FOR XML을 함께 지정하지 않으면 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블 식에서 ORDER BY 절을 사용할 수 없습니다.

TOP, OFFSET 또는 FOR XML을 함께 지정하지 않으면 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블 식에서 ORDER BY 절을 사용할 수 없습니다. order by문에 이 오류가 나타날 경우 SELECT절에 TOP 100 PERCENT 를 붙여주면된다

IT/DB 2019.04.01

[mssql] 전체 데이터/테이블/뷰/프로시저/함수/시퀀스 삭제하기

로컬이나 개발계에서 테스트를 하거나 초기개발구축 단계라면 나처럼 모든 테이블을 삭제하거나, 모든 데이터를 날릴 일이 생길 수 있다. 그런사람들은 아래를 참고하자. ex1) SELECT 'DROP TABLE ' + SCHEMA_NAME(schema_id)+'.'+name AS TableToDrop FROM sys.objects WHERE type='U' 전체 테이블을 drop 하고자 한다면 ex1 처럼 sql문을 실행시켜 나온 결과목록을 복사해서 실행시키면 된다. 의도에 따라 alter, delete 등으로 활용할 수 있을 것 같다. 그외 삭제 쿼리 추출용 sql문은 아래와 같다. --Table SELECT 'DROP TABLE ' + SCHEMA_NAME(schema_id)+'.'+name AS Tabl..

IT/DB 2019.03.25

[MSSQL] Microsoft SQL Server 2012 서버에 연결 중 오류

MSSM 2012 서버 연결 에러 SQL Server에 연결을 설정하는 중에 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다. 서버를 찾을 수 없거나 액세스할 수 없습니다. 인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (provider: 명명된 파이프 공급자, error: 40 - SQL Server에 대한 연결을 열 수 없습니다.) (Microsoft SQL Server, Error: 2) 이런 에러가 뜨는 경우 관리도구 - 서비스 에 들어가면 SQL Server가 실행되지 않고 있는 것을 확인할 수 있다.따라서 SQL Server를 마우스 우클릭 하여 실행중으로 바꾸어 주면 된다.

IT/DB 2018.07.02

[MSSQL] 데이터 가져오기 시 엑셀 데이터 잘림 현상

반환된 열 상태는 "텍스트가 잘렸거나 하나 이상의 문자가 대상 코드 페이지와 맞지 않습니다. 해당 오류는 실행 - REGEDIT 클릭 - 찾기 -> TypeGuessRows 엑셀 아래에 typeguessrows 더블클릭 하여 0x00000000(8)에서 0x00000000(0) 으로 (8을 0 으로) 바꾸어 주면 된다.한번에 받아올 수 있는 문자열을 255에서 무한으로 늘려주는 거란다. 이 방법을 통해서 도 해결이 안되면 가장 첫줄에 오는 데이터를 해당 문서에서 가장 긴 크기의 데이터로 넣어주면 한번에 받아올 수 있는 데이터 크기가 해당 데이터 크기만큼 늘어나게 된다.

IT/DB 2018.07.02

[oracle/toad] ORA-01017 Invalid username/password;logon denied

기존 오라클 10g 까지는 대소문자 구분이 없이 그냥 사용했으나 오라클 11g부터는 대소문자를 구별한다고 한다. 나역시 이 에러가 나서 구글링 해봤더니대소문자 구분한다길래 아이디를 소문자로 바꾸어서 connect 하니 정상적으로 접속되었다. ID와 PW의 대소문자를 확인했음에도 이 에러가 뜬다면 대소문자 구분하지 않도록 설정할 수 있다고 하지만보안상 취약 해 진다고 하니 자제해야하겠다.

IT/DB 2018.07.02
반응형