본문 바로가기

프로그래밍 언어/쿼리문 + Oracle + MySQL50

[MySQL] 리눅스/우분투(Ubuntu)에서 캐릭터셋(Characterset) UTF8로 변경하는 방법 이것 때문에 정말 수많은 구글링을 했습니다./etc/mysql/my.cnf 파일을 아래 변경하면 된다고 나옵니다.[client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci init_connect=SET collation_connection=utf8_general_ci init_connect=SET NAMES utf8 [mysql] default-character-set=utf8 나는 왜 안되는걸까?저렇게 추가를 하면 왜 내 서버는 오류를 뱉어내는걸까?그렇게 반나절을 꼬박 허비하고 그래도 구글링 끝에 찾아냈습니다. 요즘 리눅스에서 MySQL을 설치하면 이 캐릭터셋 설정을/etc/m.. 2018. 4. 29.
[리눅스/우분투] phpMyAdmin 설치했는데 http://도메인/phpmyadmin 안 들어가질 때 해결방법 우분투(ubuntu)에 APM을 설치하고 phpMyAdmin을 설치했습니다.그런데, 왜 http://도메인/phpmyadmin을 해도 들어가지지 않을까요? 1sudo vi /etc/apache2/apache2.confcs 이 명령어로 apache2.conf 파일에 한줄을 추가해 주면 됩니다. Include /etc/phpmyadmin/apache.conf 1sudo /etc/init.d/apache2 restartcs입력했으면 위 명령어로 apache2를 재시작 해주어야 합니다.그리고 다시 들어가보면 잘 됩니다^^ 2018. 4. 28.
[phpMyAdmin]에서 import시 파일용량 늘리기 phpMyAdmin에서는 내보내기(import), 가져오기(export)를 통해서 쉽게 테이블을 다른 DB로 이동할 수 있는데요.문제는, Export한 파일을 선택하여 가져오기를 하려는데 최대 2MB 용량에 걸린다는 것이죠. 용량이 초과되면 이렇게 에러가 발생합니다.그렇다면, 업로드 용량을 늘려줘야 하는데요.php.ini 파일의 아래 부분을 찾아서 수정해 주면 됩니다.123file_uploads = Onupload_max_filesize = 100Mpost_max_size = 100Mcs 리눅스라면 vi로 파일을 열어 위 명령어를 찾아서 수정하면 됩니다.저는 리눅스 중에서도 우분투를 사용하고 있어서 아래 명령어로 수정을 해보았습니다.1sudo vi /etc/php/7.0/apache2/php.inics .. 2018. 4. 25.
[오라클] Oracle의 rollup 사용시 최종 총계(Total)만 보고 싶다면? 총계, 소계를 보고 싶을 때 rollup 명령어를 자주 사용하죠.rollup에 컬럼을 하나면 넣으면 총계만 나오지만, 컬럼이 여러개일 경우에는 소계와 총계가 섞여서 나옵니다. 위 그림처럼 Total이 여러개 나오는데중간중간에 보이는 Total이 소계이고,맨 마지막 Total이 모든 데이터의 값을 더한 총계가 됩니다. 때에 따라서는 소계는 필요없고 총계만 필요할 때가 있는데 어떻게 하면 될까요? 방법은 아주 간단합니다.Group by ROLLUP(COLUMN1, COLUMN2)=>Group by ROLLUP((COLUMN1, COLUMN2)) ROLLUP( ... ) => ROLLUP(( ... ))이렇게 괄호를 한번 더 감싸주면 총계만 볼 수 있답니다^^ 2017. 11. 20.
오라클(Oracle) CLOB 데이터형식 저장(Insert/Update) 프로시저 샘플 CLOB은 저장하는 방식이 달라서 insert/update 할 때 좀 쿼리가 복잡합니다. 기본적으로...insert할 때, Clob인 컬럼은 빈값(empty_clob)을 넣은 후에 다시 업데이트하는 형식으로 쿼리를 작성해야 하기 때문에 번거롭죠. 그래서, 저는 Clob이 들어간 테이블에 insert/update 할 때는 Insert/Update 프로시저를 만들어서 사용합니다.아래는 Insert 프로시저 예제입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980CREATE OR REP.. 2017. 10. 17.
[Orange] 오렌지에서 오라클(Oracle) CLOB 글자 다 보는 법 오라클(Oracle)의 VARCHAR/VARCHAR2가 4000 Byte여서 종종 CLOB을 사용하게 되는데요.문제는... 오렌지에서 이걸 다 확인이 안되고 글자가 잘리는 현상이 나옵니다. 위 그림에서 PARAM2라는 컬럼이 CLOB으로 돼 있는데,안의 내용을 확인해보면 끝의 글자가 잘려서 보입니다.안의 내용이 아무리 많더라도 다 확인하려면 어떻게 해야할까요? Toad에서는 CLOB도 다 잘 보이는데 오렌지는 왜 안되냐고 고민하셨던 분들...1분만 투자해서 아래처럼 설정을 조금만 변경하시면 앞으로 CLOB 때문에 머리 아플 일은 없을 겁니다. 메뉴에서 [Option > Options]를 클릭합니다. Database > Long Size => 200000으로 설정합니다.원래 기본값은 20으로 돼 있습니다... 2017. 9. 30.
[오라클] DB Link 생성하기 오라클에서 DB Link 생성하는 스크립트입니다.tnsnames.ora 파일에 DB정보를 저장하지 않고 바로 생성할 수 있는 소스랍니다. 12345678910CREATE DATABASE LINK TESTDBCONNECT TO SUSERIDENTIFIED BY "1234"USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 100.211.111.107)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SEP) ))';Colored by Color Scriptercs DB Link명 : TESTDB => @TESTDB 이렇게 사용하시면 됩니다.USER명 : SUSER비밀번호 : 1234US.. 2017. 8. 17.
[Orange] 오렌지에서 오라클(Oracle) 다른 유저로 DB 가져오기(import) 서로 다른 사용자의 데이터를 import하려면 DBA 권한이 있어야만 가능합니다.YOWMSDEV라는 유저의 데이터를 YOCWMS라는 유저로 import 해봤습니다.저는 system으로 로그인을 했답니다. 오렌지의 상단메뉴에서 [Tools > Import]를 선택합니다. System으로 로그인을 했구요.(SysDBA로 로그인하셔도 됩니다.) From User에 YOWMSDEV를 입력하시구요. To User에 YOCWMS 유저를 선택합니다. 하단의 [Import Now] 버튼을 클릭하시면 Import가 실행됩니다.완료되면 테이블 등이 YOCWMS 유저에서 잘 보이는지 확인하시면 끝~!!! 2017/05/17 - [프로그래밍 언어/쿼리문/Oracle/MySQL] - [Orange] 오렌지에서 오라클(Oracl.. 2017. 7. 27.
[오라클] Oracle에서 컬럼의 값 만큼 행(Row)을 늘리는 쿼리 1234567SELECT ASNDKY, WAREKY, YQTYASN_IFROM ASNDHWHERE 1=1AND DOCDAT = '20170531';cs 이 쿼리를 실행하면 결과가 이렇게 나온다. YQTYASN_I라는 컬럼의 값의 수만큼 row를 뿌려줘야 하는 경우가 생겼는데 어떻게 해야 할까?오라클에서는 CONNECT BY를 사용하면 해결할 수 있다. 12345678910SELECT H.ASNDKY, H.WAREKY, H.YQTYASN_IFROM ASNDH H, (SELECT LEVEL NUM FROM DUAL CONNECT BY LEVEL 2017. 6. 29.
[오라클] 테이블정의서 자동으로 만들어주는 Oracle 쿼리 (Primary Key 여부 포함) 123456789101112131415161718192021222324252627282930313233343536373839404142WITH LIST AS( SELECT A.TABLE_NAME, A.COLUMN_NAME, A.DATA_TYPE, A.DATA_LENGTH, A.NULLABLE, B.COMMENTS FROM dba_tab_columns A, all_col_comments B WHERE A.OWNER = B.OWNER AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME AND A.OWNER = 'LOTOSDEV' -- DB명),PKLIST AS( SELECT C.TABLE_NAME, C.COLUMN_NAME, C.POSITIO.. 2017. 6. 26.
[오라클] 동적쿼리를 실행해서 원하는 값을 가져오는 Oracle 함수 예제 보통 쿼리에 컬럼이나 테이블명 등은 변수로 받을 수가 없는데요.원하는대로 쿼리를 만들어서 결과값을 가져오는 오라클 함수 샘플입니다. 123456789101112131415161718192021222324252627282930CREATE OR REPLACE FUNCTION ZBF_GET_DELIVERY_NM ( p_ptnrky in varchar2 , p_wareky in varchar2) RETURN VARCHAR IS v_sql VARCHAR2(1000); v_returnValue VARCHAR2(180);/******************************************************************************/BEGIN BEGIN v_sql := ' SELECT B.. 2017. 6. 23.
[Oracle] 오라클 락(lock) 걸렸을 때 사용할 유용한 쿼리들 오라클 락 걸렸을 때 유용하게 사용할 쿼리들입니다. * 락걸린 테이블 확인123SELECT DO.OBJECT_NAME, DO.OWNER, DO.OBJECT_TYPE, DO.OWNER, VO.XIDUSN, VO.SESSION_ID, VO.LOCKED_MODE FROM V$LOCKED_OBJECT VO, DBA_OBJECTS DOWHERE VO.OBJECT_ID = DO.OBJECT_IDColored by Color Scriptercs * 해당 테이블에 LOCK 이 걸렸는지 확인1234SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAMEFROM V$SESSION A, V$LOCK B, DBA_OBJECTS CWHERE A.SID = B.SID AND B.ID1 = C.OBJEC.. 2017. 6. 8.
[Oracle] 날마다 시퀀스가 초기화되는 오라클 날짜 시퀀스(Sequence) 만들기 날짜를 포함한 시퀀스가 필요해서 만들어 봤습니다.날마다 시퀀스가 1로 초기화 돼야 해서 생각보다는 복잡합니다.1. 시퀀스 생성 2. 시퀀스를 1로 초기화하는 프로시저 생성 3. 프로시저를 오라클 job에 등록 4. 날짜를 포함한 시퀀스 값을 가져오는 함수를 생성 1. 시퀀스 생성 - 저는 3자리 시퀀스가 필요해서 MAX 999까지만 설정했습니다.123456789/* 배치키 시퀀스 */CREATE SEQUENCE SEQ_BATCHKEYSTART WITH 1MAXVALUE 999MINVALUE 1CYCLECACHE 10NOORDER;cs 2. 시퀀스를 1로 초기화하는 프로시저 생성한다.123456789101112131415/* 시퀀스 초기화 Procedure */CREATE OR REPLACE PROCEDU.. 2017. 5. 30.
[Oracle] 오라클 함수(Function)에서 DML(Insert/update/delete)문 사용하기 오라클 함수(Function)에서는 기본적으로 DML(Insert/update/delete)문을 사용할 수 없습니다.하지만, 기본적으로 그렇다는 것이지 사용할 방법이 없다는 건 아니랍니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253CREATE OR REPLACE FUNCTION ZBF_GET_BARNUM ( p_bartyp in NUMBER, p_bardat in varchar2, p_gubun in varchar2 -- CUR/NEW) RETURN VARCHAR IS v_returnValue VARCHAR2(60); v_curnum NUMBER(10); v_cnt NUMB.. 2017. 5. 26.
[Oracle] 오라클 export 배치 스크립트 만들어 윈도우 스케쥴러에 등록하여 자동 백업하고 삭제하는 방법 개발서버 오라클 DB를 주기적으로 백업해야 해서 윈도우 배치 스크립트를 만들어 봤습니다.그리고, 백업 배치파일을 새벽에 동작하도록 윈도우 스케줄러에 등록했습니다. 1. 오라클 DB 백업 : 매일 새벽 1시에 실행2. 오라클 백업된 DB 삭제 : 매주 수요일 자정(밤 12시)에 실행 * oracle_export.bat (오라클 백업 스크립트):: ---------------------------------- :: 형식 : 윈도우 BAT 파일 :: 스케줄러에 등록하여 매일매일 오라클 DB를 백업한다. :: ---------------------------------- @echo off:: SET R_PATH=E:\BACKUP SET BACKUP_PATH=D:\백업\oracle_backup\daily\1 SE.. 2017. 5. 25.