본문 바로가기

Tech/Database31

Oracle 21 xe Sample db setup Releases · oracle-samples/db-sample-schemas (github.com) Releases · oracle-samples/db-sample-schemas Oracle Database Sample Schemas. Contribute to oracle-samples/db-sample-schemas development by creating an account on GitHub. github.com 1. 여기에서 sample db를 내려 받는다. 2. sqlplus sysdba 권한으로 접속한다. 3. oracle12C 이후 부터는 접두어가 붙는데 이를 해제하려면 alter session set "_oracle_script"=true; 로 설정해야 한다. 4. 1에서 다운 받은 파일.. 2023. 7. 9.
Oracle DBMS_RANDOM을 이용한 테스트 데이터 만들기 이런 회원 엔티티가 있다. 여기에 테스트 데이터를 채워 넣어 보자. DBMS_RANDOM 함수를 이용해서. CREATE TABLE T_MEMBER AS WITH T1 AS ( SELECT ROWNUM AS RID1 , REGEXP_SUBSTR(STR, '[^,]+', 1, LEVEL) AS NAME1 FROM ( SELECT '김,이,박,고,안,강,조,최,차,손,하,정,허,성,하,정,진,송,마' AS STR FROM DUAL ) CONNECT BY LEVEL 2023. 5. 10.
string_agg를 활용한 중복 레코드 확인 테이블 내부에 특정 컬럼의 중복이 존재한다면, 어떤 컬럼의 레코드가 중복되는지 확인할 필요가 있다. 중복되는 데이터 컬럼을 확인하려면 데이터 컬럼 기반으로 Group by 를 사용해 집약하고, Having 구문을 사용해 레코드의 수가 1보다 큰 그룹을 찾아내면 된다. 아래와 같은 데이터가 있다. CREATE TABLE PUBLIC.PROD_MASTER ( PROD_ID CHARACTER VARYING(10), PROD_NAME CHARACTER VARYING(100), CREATE_DT CHARACTER VARYING(24), PRIMARY KEY (PROD_NAME, PROD_ID) ); INSERT INTO PROD_MASTER(PROD_ID, PROD_NAME, CREATE_DT)VALUES ('1.. 2022. 2. 7.
세로 기반 데이터를 가로로 출력 쿼리 쿼리 결과를 가져올 때, 세로 기반 데이터를 가로로 출력이 필요할 때가 있다. 아래와 같은 데이터가 있다고 가정하자. 위와 같은 데이터를 날짜별로 사람 이름(james, julie)를 열 이름으로 지정하여 데이터를 전개해보면 아래와 같다. 날짜 1개의 레코드를 집약할 수 있게 group by dt를 사용한다. 그리고 max(case when )구문을 사용해서, 사용자 이름에 해당되는 값을 출력한다. 이를 구현하면 아래와 같다. select dt , max(case when name='james' then val end) as james , max(case when name='julie' then val end) as julie from vertical_tb group by dt order by dt; 아.. 2022. 1. 27.
반응형