목록Programming/DB (7)
공학박사 권경안
저장 하는 코드를 보면서 간단하게 이해를 해 보겠습니다. 생략... FILE *fp, *_temp_fp; // Insert Tableif ((fp = fopen(tablefileName, "a+b")) == NULL){printf("Could not open file.\n");fclose(fp);exit(0);} table_info* table_info;table_info = get_table_info(tablename); 생략... else// General Insertion{records++; for (int i = 0; i col.at(i).type == 0){int value_of_int = atoi(value[i]);fwrite(&va..
Database 만들기 - 프로젝트 개요 자료는 파일(Binary) 로 저장되어 삽입, 검색등이 이루어지며,Database 정보(테이블 이름, 컬럼 이름, 기본 키, 레코드 사이즈, 레코드 수등)를 담는 Catalog 파일은 텍스트(Text)로 관리한다. Create 명령어를 통해 테이블을 생성하고Insert 명령어를 통해 Record 를 입력하고Select 명령어를 통해 Binary 파일을 읽어 화면에 출력한다.Where 명령어를 통해 (Offset 활용) 필요한 레코드만 출력하며, Join 명령어를 통해 테이블간 Join 도 가능하다. Batch 모드를 실행하면 한번에 여러개의 Sql 명령어를 실행할수 있다. ---------------------------------------------------..
쿼리를 작성하다보면 가끔(?) 또는 자주(?) join 이 잘~~ 안될때가 있고 답답함을 하소연 할때를 찾는데... 몇일전 이런경우가 생겨 오라클클럽[go]에 다음 그림을 캡쳐해 올리며 질문을 했다. Q.다음과 같은 데이터 셋에서 join 을 어떻게 해야되나요? 첨부한 jpg 의 상단 두개를 가지고 join 하여 아래의 결과값을 원하고 있습니다 A, B 테이블에서 A 날짜보다 작거나 큰값의 MAX 를 가져오면 될것 같은데 잘안되고 있습니다. 도움을좀 주세요 ^^ ... .. . 하루가 지나 그 다음날이 되니 다음과 같은 query 를 받을수 있었다. WITH t1 AS ( SELECT '20090831' std_date, 'KCD' id FROM dual UNION ALL SELECT '20090930'..
SELECT to_char(SYSDATE -1/(24), 'HH24:MI:SS') 한시간전, to_char(SYSDATE -1/(24*2), 'HH24:MI:SS') 삼십분전, to_char(SYSDATE , 'HH24:MI:SS') 현재시간, to_char(SYSDATE +1/(24), 'HH24:MI:SS') 삼십분후, to_char(SYSDATE +1/(24), 'HH24:MI:SS') 한시간후 FROM DUAL; 다음쿼리를 통해 1시간전, 30분전, 현재시간, 30분후, 1시간후 를 확인할수 있으며 응용도 가능하다.
ORACLE 내장함수에는 LEFT(), RIGHT() 함수가 없다. substr 함수를 통해 똑같이 구현이 가능하다. @ 3번째 자리부터 쭉- SELECT substr('ABC권경안Z9', 3) FROM DUAL; C권경안Z9 @ 4번째 자리부터 2글자 SELECT substr('ABC권경안Z9', 4, 2) FROM DUAL; 권경 @ 우측부터 추출하고 싶다면 마이너스(-) 기호를 사용하면 된다. 우측 2글자 SELECT substr('ABC권경안Z9', -2) FROM DUAL; Z9
Oracle Dump() 함수를 통해 해당데이터의 타입 및 CharacterSet을 확인할 수 있다. (정확하게 Metadata 를 제공한다.) SELECT DUMP('ABC', 1016) FROM DUAL; Typ=96 Len=3 CharacterSet=AL32UTF8: 41,42,43 Typ=96 Len=3 CharacterSet=KO16KSC5601: 41,42,43Typ=96 Len=3 CharacterSet=KO16KSC5601: 65,66,67 (1010 으로 했을때 10진수로 표현) 다국어 지원에 프로젝트에서 정확하게 CharacterSet 이 확인시유용함! The argument return_fmt specifies the format of the return value and can ha..
select * from v$resource_limit; 아래와 같은 결과로 processes, sessions 의 개수가 LIMIT 를 넘어서면 ORACLE 에러가 발생할수 있다. ORA-03113: 통신 채널에 EOF 가 있습니다 processes108116 150 150 sessions111119 170 170 enqueue_locks3548 2300 2300 enqueue_resources3561 968 UNLIMITED ges_procs00 0 0 ges_ress00 0 UNLIMITED ges_locks00 0 UNLIMITED ges_cache_ress00 0 UNLIMITED ges_reg_msgs00 0 UNLIMITED ges_big_msgs00 0 UNLIMITED ges_rsv_ms..