생계/Oracle2022. 9. 10. 23:33

계층구조의 수직적 통합으로 순환관계 모델이 만들어 질수 있다

오라클에서는 start with 구문을 제공하여 간단하게 순환전개 쿼리를 작성할 수 있다.

 

1) 순환전개 SQL 

SELECT LEVEL, 부서코드, 부서명, 상위부서코드, PRIOR 부서코드
   FROM 부서
 START WITH 부서코드 ='001'
CONNECT BY 상위부서코드 = PRIOR 부서코드   
 

부서코드 '001' 을 가진 RECORD 로 부터 시작해서 해당부서코드가 상위부서코드로 되어있는 하위 레코드들을 찾아가는 쿼리이다. 

LEVEL, PRIOR 는 RECURSIVE SQL 에 제공되는 가상으로 만들어진 컬럼이다. 

LEVEL 은 해당 레코드의 depth 를, prior 는 "앞서 읽은"  이라는 의미로 이것을 단서로 계층적으로 레코드들을 찾아나간다.

 

2) 순환전개 결과의 정렬 

 SELECT LEVEL, 부서코드, 부서명, 상위부서코드
  FROM 부서
 START WITH 부서코드 ='001'
CONNECT BY 상위부서코드 = PRIOR 부서코드   
ORDER SIBLINGS BY 부서코드

 정렬된 결과를 얻기 위해서는 ORDER BY 중간에 SIBLINGS 를 써줘야 한다. 

같은 레벨에서의 정렬을 의미한다. 

 

3) 실행순서 

(1)START WITH 에서 시작해서 

(2) CONNECT BY 로 순환전개를 풀고 나서야

(3) WHERE 조건에 맞는 ROW 만 취하고 나머지는 discard 한다.

 

* 인덱스 생성 : 위 쿼리에서는 prior 에서 찾는 값이 상수가되어 '상위부서코드'를 찾게 되므로 

상위부서코드에 인덱스가 필요하다. but 역전개 쿼리 가능성도 존재하므로  '부서코드' 에도 인덱스를 

만드는게 좋다. 

 

반응형

'생계 > Oracle' 카테고리의 다른 글

오라클 DISKGROUP RENAME  (0) 2022.12.21
ASM 사용중 datafile 을 다른 diskgroup 으로 이동  (0) 2022.12.21
extended varchar 사용법  (0) 2022.09.01
트리거 안쓰는 이유  (0) 2022.08.30
dbms random  (0) 2022.08.24
Posted by 돌고래트레이너


1) 국적에 대한 생각
- 이민가면 국적이 바뀌는가
가끔 이민을 가면 국적이 바뀌는 것으로 생각하는 사람들이 있다.
이민은 거주지가 바뀌는 것이고 그것이 국적 취득까지 이어질수는 있지만, 외국인의 신분으로 해외에 거주하는 것이다.
실제로 미국에 오랜기간 거주하는 교포들 중에는 일부러 미국 국적을 취득하지 않고 한국인 신분을 유지한채
살아가는 분들도 많이 보았다. 그러나 그 자식들은 현지에서 태어나서 바로 미국국적을 취득하게 된다.
이민1세대는 자신의 뿌리가 한국인이라는 것을 거의 대부분 잃지 않고 살아가지만 그들의 자식인 2세대 부터는 상황이 조금 달라진다. 서류상 국적은 미국인이지만 부모로 부터 한국식 문화와 교육을 잃지 않고 살아온 2세대 들은 자신을 한국인으로 인식한다. 그러나 그런 과정이 없이 자라온 2세대 들은 한국은 그냥 부모님의 나라이다.
이민 3세대 부터는 그냥 현지인 인데 자신의 뿌리를 그래도 인지하는 부류와 아닌 부류가 존재한다.

-2. 외국은
한국에서만 살면 국적이라는 것을 인지하게 된다. 지정학적 이슈, 뉴스가 나올때마다 나라를 걱정하고 외국을 욕하게 된다.
그러나 외국에서 거주하면 국적이라는게 요즘세상에 의미가 있는 걸까 하는 생각이 든다.

힘들게 일본, 중국과 경쟁하며 미래를 걱정하기 보다 미국에 붙어서 제 3자의 입장으로 강건너 불구경하게 된다. 

재미교포들의 가치관 중에 이런 부류가 많은것 같다. 자신의 뿌리는 한국이면서 한국에 사는 한국인을 불쌍하게 생가하는.. 

유럽의 경우는 유럽연합 국가들 간에는 이동, 취업의 제약이 없어진지 꽤 되어서 국적이라는게 별 의미가 없다.

비유럽과 비유럽만 있다.  


-3. 정체성은 언제 형성이 되는가

한사람의 정체성은 어느 시기에 형성이 되는가 에 대한 질문을 스스로 해보았는데
초중고 교육이 한사람의 아이덴티티 형성에 지대한 영향을 미친다.

원정출산으로 국적만 취득했을 뿐, 이후로 한국에서 교육과정을 다 마친 사람은 자신을 한국인으로 생각하지
미국인으로 생각하지 않는다. 반면 국적은 한국인이지만 교육과정을 외국에서 받았다면 한국인의 정체성은 핏속에만
흐를뿐이다.
서류상의 표시보다 스스로가 어느정체성이라고 생각하는가가 중요하고 이것은 어릴적의 교육이 형성한다는 생각이다.
즉, 성인 이후 이민은 아무리 기간이 길어도 자신을 미국인으로 생각하지 않는다는것이기도 하다.

미국은 어느정도 학년이 되면 학교에서 따로 그런시간을 가진다고 한다.
미국인이지만 뿌리에대해서는 상기해준다는것이다. 이는 다양성이 미국을 이끄는 힘이라고 보기때문이다.
음식, 언어, 문화 등에 대해 뿌리를 잊지않게 해주는 노력이 필요하다.
어릴때는 자아 라는게 형성되지 않아 정체성이라는게 없지만 결국 커가면서 자신의 뿌리에대해서 생각하게된다.

한국인들이 자식교육 때문에 이민을 많이 가는데 본인들은 자식의 미래를 위한다고 한 결정이지만, 가정교육의 중요성을 등한시 할 경우 어떤 결과가 나오는 지에 대해서 잘 모르는 사람들이 있어서 오지랍을 떨어본 글이다.

반응형

'별거없는 일상 > 그냥일상' 카테고리의 다른 글

컷오프 cut-off vs 컷오버 cut-over  (0) 2024.02.24
이태원참사  (1) 2022.10.31
cool guy rule  (0) 2021.07.30
AZ 아스트라제네카 백신 1차 접종 후기  (0) 2021.04.18
요즘 먹는 신상 과자 농심 프레첼  (0) 2020.11.19
Posted by 돌고래트레이너
생계/Oracle2022. 9. 1. 01:31


- 기능 설명 

 varchar 의 길이 제한은 4000 byte 이나 이것 이상 저장하려고 하면 long 이나 lob 타입으로 변경해야함.
 그러나 long 타입은 테이블 당 1개 밖에 쓸수 없고, SUBSTR 함수 같은 것의 사용이 제약됨. 
 내부적으로는 기능개선을 중단했고, clob 사용을 권장함.
 
- 사용방법

conn / as sysdba
PURGE DBA_RECYCLEBIN

SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;

ALTER SYSTEM SET max_string_size=extended;

@?/rdbms/admin/utl32k.sql
SHUTDOWN IMMEDIATE;
STARTUP;

 
-- CHECK 
show parameter max_string

alter table TEST modify varchar2(5000);


반응형

'생계 > Oracle' 카테고리의 다른 글

ASM 사용중 datafile 을 다른 diskgroup 으로 이동  (0) 2022.12.21
계층형 쿼리 start with connect 실행 순서  (0) 2022.09.10
트리거 안쓰는 이유  (0) 2022.08.30
dbms random  (0) 2022.08.24
[oracle] db접속 안될때  (0) 2022.08.15
Posted by 돌고래트레이너