본문 바로가기

SQL/Oracle8

[Oracle] ORA-28000 계정잠김 ORA-28000: the account is locked ORA-28000: 계정이 잠금되었습니다 테스트 할때 비번을 여러번 틀려서 계정이 잠겼음. dba 권한이 있는 계정으로 로그인해서 --계정 상태 확인 select username, account_status, lock_date from dba_users where username = '유저명' ; -- 계정 잠김 해제 -- 꼭 "" 쌍따옴표 사용할 것 ALTER USER "유저명" ACCOUNT UNLOCK; 2022. 12. 26.
[oracle] PROCEDURE 프로시저 https://www.tutorialspoint.com/plsql/plsql_procedures.htm CREATE OR REPLACE PROCEDURE greetings( inputed in number, z OUT number ) IS BEGIN select 1 into z from dual; dbms_output.put_line(' ' || ' : ' || z); z := inputed; dbms_output.put_line(' ' || ' : ' || z); END; greetings라는 프로시저는 입력받는 인자값으로 inputed와 반환할 값으로 z을 사용한다. 프로시저 이후 동작할 부분을 begin과 end사이에 삽입하고 프로시저 선언 이후 바디와 연결하는 부분은 IS와 AS를 이용하여 연결한.. 2022. 7. 27.
[Database/Oracle]오라클 테이블 스페이스 추가하기 alter TABLESPACE 테이블 스페이스 이름 add DATAFILE '+DATA' SIZE 30G AUTOEXTEND OFF; EX) alter TABLESPACE Test_TABLE_SPACE add DATAFILE '+DATA' SIZE 30G AUTOEXTEND OFF; 아 맞다 이거 우리 회사에서 사용하는거라 +DATA 부분이 라거나 사용해야하는 쿼리가 다를 수 있음. 2022. 3. 4.
통계 데이터 생성 오류 잦은 이유 자꾸 통계 만들때마다 오류 발생하는 부분 1. 데이터가 없는 시간대의 값들을 0으로 생성해놓고선 통계 낼때 0으로 생성된 값을 이용한다. -> 평균치가 말도 안되게 낮아짐 2. merge 문 사용할때 키값을 잘못사용함. (아이디), 날짜 로 사용하는데 날짜의 값을 잘못 사용해서 update 로 적용되어야하는 쿼리가 insert로 들어가면서 무결성 오류가 발생됨 dual로 쿼리결과 2021년 x월 x일 12시 00분을 집어넣었을때 -15분한 데이터를 문자열로 호출하도록 했으나 쿼리결과가 2021xxxx114500가 아닌 2021xxxx120000으로 나오거나 하는 상황이 발생함 (사용하는 시간 범위만 다른 값을 이용하므로 오타가 발생했으나 쿼리문을 복사 붙여넣기 하면서 잘못 적은것을 인지하지 못했음.) (.. 2021. 12. 29.
[Oracle] 오라클 시간더하기, 테스트용 데이터 만들기 -- 5분간격 이력데이터 생성 declare 시간값 date := to_date('20211210144500' , 'yyyymmddhh24miss'); -- 데이터 생성 시작 시점 의 -5분으로 설정해야 -- 아래의 +5분하는 부분으로 인해 시간이 겹치지 않음 -- declare 와 begin 사이의 공백이 발생한다면 sql 쿼리의 마지막을 만났다고 오류로그를 출력함. begin for day in 1..22 loop -- 각 시간의 매 5분마다 데이터 생성 -> 60을 5로 나누면 12 시간값 := 시간값 + interval '5' minute; --> 5분씩 더하기 for i in 1 .. 63 loop --> 매 5분마다 1부터 63개까지의 지점 생성 -- 키값이 없어 생성할 수 없는 데이터 건너뛰.. 2021. 11. 12.
만능인줄 알았던 오라클(잘되던 insert select 안될때) 오라클 DB에 대한 신뢰성을 꽤나 흔들리게 해주었던 쿼리 Insert select 여러개의 조건따윈 없고 이력성 테이블에 넣은 데이터들을 이용해서 스케줄러 돌아가는 시간에 맞춰서 매번 시간값 하나 넣어주면 다 해결되도록 쿼리를 짜놨었는데 이것 때문에 당황한일이 있었다. (당황 => 하루이내에 수시간내로 원인파악 및 대처하여 처리 가능했던일) 예를 들어 A라는 마트에서는 여러가지의 상품들을 취급하는데 각각의 팔린 상품들이 팔린상품들을 관리하는 A.selled 라는 테이블이 있다고 치자. 여기서 B.record , C.record , ... 라는 테이블에 각각의 상품들이 얼마나 팔렸는지 매 시간과 일별 통계를 내는 데 각각의 모든 상품들을 아이디를 넣기보다 DB에서 처리하는게 더 빠르지 않을까 라는 생각으로.. 2021. 8. 3.