본문 바로가기
728x90
반응형

database27

MySQL 날짜형 데이터 타입 : DateTime, Date, Time (ft.오늘의 milliseconds 계산하기) NOW() -> 현재 날짜/시간 반환, DateTime형CURDATE() -> 현재 날짜 반환,Date형INTERVAL -> 시간,날짜 계산시 사용하는 키워드오라클에는 날짜형 데이터 타입이 DateTime, Timestamp 두가지 정도밖에 없는 것과 다르게Mysql은 Date, Time, DateTime, Timestamp, Year .. 여러가지가 있는 것 같다어떻게 보면 Mysql 쪽이 데이터타입이 많으니 뭔가 더 복잡한 것 같은데, 사실 데이터를 가져와서 이리저리 가공하는 경우가 더 많기때문에,, 그게 싫은 개발자라면 Mysql 쪽이 편할 수도 있겠다라는 생각을 하게 되었다. 그래도 난 오라클쪽이 더 직관적이고 유지보수하기 편할 것 같다. 기획자가 처음에는 년도만 필요한 것 같이 기획했지만 추후에.. 2025. 8. 26.
Mysql과 MariaDB / RaspberryPI 에 MariaDB 설치하기 MariaDB는 Mysql에서 파생된 자식뻘 데이터베이스 시스템이다.오라클의 인수 이후 MySQL 개발자들이 소스코드를 포크(fork)하여 만든 MariaDB는 포크버전 답게,MySQL의 API, SQL 문법 등이 거의 복제된 형태로 만들어져있다.그래서 설정파일 위치 같은 부분만 다르고, 사용하는 문법이 거의 동일하다. 포크 이후에는 MariaDB는 점점 확장되면서 독자적인 기능들이 추가되고 있고, MySQL은 엔터프라이즈급 안정성 위주로 발전하고 있다고 한다. 나의 경우 RaspberryPI 에서 Mysql을 설치하여 사용하고자 했으나, 결국 라즈베리파이 환경에서는 MySQL 서버 패키지 대신 MariaDB 서버가 기본 제공되어 사용하게 되었다.내가 정말 MySQL을 사용해야 했다면 다른 방법을 고민.. 2025. 8. 26.
오라클 반복문 for문 작성 (+ DBMS_OUTPUT 출력안됨) 오라클 for 반복문 작성해보기.DBMS_OUTPUT.PUT_LINE() 사용했는데 오라클 스크립트 출력창에 안나온다면 출력모드를 on 해준당 예제 쿼리/* 출력 모드 on */SET SERVEROUTPUT ON; /* 변수 정의 */DECLARE NUM1 NUMBER :=1;TODAYS_DATE DATE := SYSDATE;/* 함수 시작 */BEGIN DBMS_OUTPUT.PUT_LINE('안녕하세요. 오늘 날짜는..' || TO_CHAR(TODAYS_DATE, 'YYYY.MM.DD')); --출력 /* 반복문 */ FOR I IN 1..5 LOOP SELECT SYSDATE + NUM1 INTO TODAYS_DATE FROM DUAL; DBMS_OUTPUT.PUT_.. 2024. 6. 18.
오라클 시퀀스 ↔ 테이블 시퀀스 맞추기 (동기화하기) 간혹 데이터를 이관하다보면, 해당 테이블의 pk 로 사용하는 시퀀스와, 거기에 사용되는 시퀀스의 value가 맞지 않을 때가 있다. 나는 무결성 제약위반 오류가 뜨면서 데이터가 수정처리 되지 않았기 때문에, 시퀀스를 맞춰주어야 하는 상황이었다 또 이런 상황이 생길 수도 있으니 간단한 프로시저로 만들어보았다 create or replace PROCEDURE "SYNC_SEQ" ( P_SQ_NM in VARCHAR2-- 시퀀스명 , P_TB_SEQ_NM in VARCHAR2 -- 테이블 내 시퀀스 컬럼명 , P_TB_NM in VARCHAR2 -- 테이블명 ) IS V_NEXT_VALUE NUMBER; V_MAX_VALUE NUMBER; V_CAL_VALUE NUMBER; T_NUM N.. 2024. 2. 20.
오라클 엑셀 익스포트 시 줄바꿈 오류 #오라클 엑셀 익스포트 시 줄바꿈 오류 오라클에서 select 한 결과를 익스포트 할 때, 간혹 줄바꿈이 지 멋대로 되어서 저장되어 있는 경우가 있다. 아래와 같이 저장이 되어서 곤혹스러웠다. .. 1. 이슈 select 결과로는 정상적으로 보이지만, 막상 엑셀파일로 옮겨보면 줄바꿈 난리남 2. 해결 문득 보이는 인코딩 설정값.. 기본으로 설정되어 있는 ms949. 요녀석을 utf-8로 바꿨더니 정상적으로 저장이 되었다. 해결 🍻 아마 apachi poi 의 인코딩 문제와 관계가 있을 것 같다. 더 확인해보고 내용 추가해야겠다. 2023. 12. 13.
오라클 SELECT 결과 엑셀로 내보내기 ( 엑셀 저장 / 익스포트 기능 ) # 오라클 SELECT 결과 엑셀로 저장하기 종종 로우 데이터를 뽑아야 할 때가 있다. 그걸 엑셀로 전달해야 하는데 엑셀을 열어서 하나하나 헤드을 작성하고.. select 결과를 ctrl+c crtl+v ..!!!! 할 수도 있지만 오라클에서 제공하는 더 쉬운 기능이 있당 이름하야 익스포트 기능 1. select 쿼리 실행 후 > 질의 결과 우클릭 > 익스포트 선택 2. 익스포트 마법사 - 설정값 수정 익스포트를 선택하면 익스포트 마법사 창이 뜬다. 형식을 excel 확장자를 가진 놈으로 선택 해 준다. xls는 옛날버전이니 xlsx로 선택 형식을 바꿔주면 그에 맞게 하단 설정값도 변경된다. 헤더 : 체크하면 필드명까지 같이 추출해준다. 데이터 워크시트 이름 : 데이터가 포함될 시트(sheet)의 이름 .. 2023. 12. 13.
오라클 뷰를 이용한 DB 세션 죽이기 (V$SESSION, V$SQL, V$SQLAREA) 특정 세션이 오래걸리면서 뒤따른 세션들이 주루룩 물려 병목현상 발생.. 그래서 해당 세션을 db에서 잘라내야 했다. 1 현재 계속 수행중인 세션의 id를 찾아, 2 해당 세션id를 가지고 있는 세션을 kill 해야 했다. 1. 계속 수행중인 세션 id 찾기 우선, db 접속이 발생하면 세션이 생성되어 고유 id와 serial number을 가진다. 이에 대한 기본적인 정보는 v$session 뷰에 위치한다. 오라클은 데이터베이스 접속이 이루어지면 세션을 시작한다. 세션은 사용자가 데이터베이스에 연결되어 있는 동안 계속 유지된다. 세션이 시작되면 오라클은 해당 세션에 세션 ID(SID)를 할당한다. v$session에서 각 세션은 고유한 SID(Session identifier)와 SERIAL#(seria.. 2023. 12. 9.
오라클 PRAGMA AUTONOMOUS_TRANSACTION, 자율 트랜잭션 지정하기 오라클 PRAGMA AUTONOMOUS_TRANSACTION, 자율 트랜잭션 지정하기 프로시저 내에서 다른 프로시저를 호출하면 같은 트랜잭션에 묶이므로, 독립된 트랜잭션을 가지도록 하고 싶은 경우 사용한다. PRAGMA 키워드의 AUTONOMOUS_TRANSACTION 옵션을 통해 자율트랜잭션임을 선언해준다. create or replace FUNCTION FN_TEST ( p_paramSeq in NUMBER ) AS PRAGMA AUTONOMOUS_TRANSACTION; 이렇게 해당 프로시저를 자율트랜잭션으로 만들어주면, 부모 트랜잭션의 락(lock),리소스(resource), 커밋(commit)에 관련된 의존성을 가지지 않는다. 즉, 부모의 커밋 / 롤백 여부에 상관 없이 자신의 작업을 커밋 하거나.. 2023. 12. 7.
오라클 함수 생성하기 create or replace FUNCTION 오라클 함수 생성하기 구조 ① CREATE만 작성 시, 함수 수정해서 저장은 되지만 컴파일이 완료되지 않음. 컴파일됨(오류 발생) ② [ ] -> 생략가능. DEFAULT 는 값을 넣지 않았을 의 기본 값이 된다 ③ 결과값이 하나는 있어야 하므로 지정해준다. 지정 하지 않을 경우 발생하는 오류 : •오류(6,1): PLS-00103: 심볼 "AS"를 만났습니다 다음 중 하나가 기대될 때: return ④ 지역변수는 BEGIN 내의 실행할 쿼리문에서 사용될 변수. 결과변수는 함수 호출한 결과를 저장할 결과변수. ⑤ 실행할 쿼리문은 자유롭게 작성가능하나 INTO 로 결과변수에 결과값을 세팅해주어야 한다. •오류(8,3): PLS-00428: 해당 SELECT 문에 INTO 절이 필요합니다. ⑥ 결과변수 없이.. 2023. 12. 7.
오라클 랜덤 정수 or 랜덤 문자열 가져오기 1. 랜덤 정수 가져오기 DBMS_RANDOM.VALUE(시작수, 종료수) SELECT SYS.DBMS_RANDOM.VALUE(0,10) AS RN FROM DUAL; 그런데 소수점을 곁들인.. 그래서 TRUNC 함수로 소수점 삭제시켜준다. SELECT TRUNC(SYS.DBMS_RANDOM.VALUE(0,10)) AS RN FROM DUAL; 2. 랜덤 문자 가져오기 DBMS_RANDOM.STRING(옵션값, 자릿수) SELECT SYS.DBMS_RANDOM.STRING('A',10) AS RS FROM DUAL; 랜덤 영어 문자열을 대소문자 섞어서 10자리로 가져온다. 옵션은 아래와 같다. 옵션값 설명 A, a 대소문자 구분없는 모든 알파벳 L, l 소문자 알파벳 U, u 대문자 알파벳 P, p 특수.. 2023. 11. 10.
728x90
반응형