반응형 개발/database34 [mssql] 테이블 목록 조회 MSSQL 테이블 목록 조회 쿼리 시스템에 등록된 모든 테이블을 목록을 출력해준다. -- 첫번째 방법 select * from information_schema.tables; -- 두번째 방법 select name from sysobjects where type='U' ; -- 세번째 방법 SELECT TABLE_NAME, ORDINAL_POSITION, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS ORDER BY TABLE_NAME, ORDINAL_POSITION; 2021. 1. 17. oracle -> mssql 변경 운영중인 시스템의 DataBase를 변경하는 일이 발생! 변경하는 과정을 정리하면 의미가 있을 것 같다. 1. mssql 설치 및 DataBase 생성 이후 캐릭터셋을 확인하자. SELECT * FROM INFORMATION_SCHEMA.SCHEMATA DEFAULT_CHARACTER_SET_NAME 값이 iso1로 표시된다. 이러면 한글이 입력되지 않거나 깨질 수 있으니 변경하자 ALTER DATABASE 데이터베이스명 COLLATE Korean_Wansung_CI_AS 만약 권한에러가 발생하면 DBA에게 요청 2. 마이그레이션 툴은 "ESF Database Migration Toolkit"을 사용 변환툴 : https://www.dbsofts.com/ ESF Database Migration Tool.. 2021. 1. 17. [oracle] 오라클 한글 3byte를 2byte로 변경하여 byte 자르기 프로젝트에서 사용하는 DB는 오라클12C 이며, 캐릭터셋은 AL32UTF8로 한글이 3byte이다. -- 오라클 캐릭터셋 확인 쿼리 select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET'; 타 시스템으로 데이터 전송 중 자릿수 초과 오류가 발생하였다. 협의 당시 특정 컬럼의 자릿수는 varchar 10 이였는데, 프로젝트에서 사용하는 varchar 10 은 10 char를 의미했었고, 다른 시스템에서는 10 byte였으며, 타 시스템의 캐릭터 셋은 "KO16MSWIN949"로 한글이 2byte였다. * KO16KSC5601 완성형 한글- 일반적으로 많이 사용되며 2350자의 한글, 4888자의 한자, 히라카나, 카타카나, 영문.. 2021. 1. 17. [mssql] 오라클 사용자를 위한 MSSQL 함수 오라클만 사용한 개발자가 MSSQL에서 쿼리를 작성할 경우 오라클에서 유용하게 사용한 함수가 없어서 MSSQL 문법에 맞는 함수 또는 형식으로 함수를 생성하여 사용할 경우 시간이 허비 되는 경우가 많다. 아래 함수를 MSSQL에 만들어두면 좀 더 편하게 쿼리를 작성할 수 있다. --================================================== -- 오라클 add_months를 mssql에서 사용하기 위한 함수 --================================================== CREATE FUNCTION [dbo].[ADD_MONTHS] ( @date datetime , @m INTEGER ) RETURNS datetime AS BEGIN retur.. 2021. 1. 17. [oracle] 오라클 플래시백 쿼리 flashback query AS OF TIMESTAMP 오라클에서 데이터를 삭제/수정했을 경우, 이전 데이터 조회 현재 시간은 SYSDATE, 하루전은 SYSDATE-1 한시간전 데이터 SELECT * FROM TABLE_NAME AS OF TIMESTAMP(SYSDATE-(1/24)); -- 한시간전 데이터 조회 10분 전 데이터 SELECT * FROM TABLE_NAME AS OF TIMESTAMP(SYSDATE-(1/24)/6); -- 10분 전 데이터 조회 1분 전 데이터 SELECT * FROM TABLE_NAME AS OF TIMESTAMP(SYSDATE-(1/24)/60); -- 1분 전 데이터 조회 특정 날짜/시간 조회 SELECT * FROM TABLE_NAME AS OF TIMESTAMP(TO_DATE('20190906140000', 'Y.. 2021. 1. 17. [oracle] 오라클 plsql loop sample oracle plsql loop sample DECLARE V_CNT INTEGER; CURSOR C1 IS SELECT LEVEL AS LVL, LEVEL * LEVEL AS LVL2 FROM DUAL CONNECT BY LEVEL < 21; L2 C1%ROWTYPE; BEGIN DBMS_OUTPUT.ENABLE; DBMS_OUTPUT.PUT_LINE('LOOP1'); V_CNT := 0; DBMS_OUTPUT.PUT_LINE('V_CNT : ' || V_CNT); LOOP V_CNT := V_CNT + 1; DBMS_OUTPUT.PUT_LINE('V_CNT : ' || V_CNT); IF V_CNT = 5 THEN EXIT; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE('LO.. 2021. 1. 17. 이전 1 2 3 4 5 6 다음 반응형