posted by 구름너머 2005. 3. 25. 13:07

맥심 모카골드를 1회용에 보면 끝에 1부터 10까지의 숫자가 있더군요.

번호가 높을수록 달고, 적은 번호일수록 커피양이 많고 쓰다고 합니다.

그러니깐 1번은 타보면 많이 쓰구요..

10번은 아주 달단거죠..

참고하세요.

'좋은생각 좋은글방' 카테고리의 다른 글

2005년 세제개편안에 대한 斷想  (0) 2005.10.18
역사 의식  (0) 2005.05.26
<죄송합니다. 깡패 형들이 시켜서>  (0) 2005.03.24
태극기 바로 그리기  (0) 2005.03.04
생활상식 모음 100선  (1) 2005.01.10
posted by 구름너머 2005. 3. 24. 13:04
<죄송합니다. 깡패 형들이 시켜서>2005/03/24 10:50 송고

참회의 편지
(시흥=연합뉴스) 강창구 기자 = "깡패 형들이 시켜서 아이스크림을 훔쳤습니다. 정말 죄송합니다. 용서해주세요"

일진회 등 학교폭력문제가 위험수위를 치닫고 있는 가운데 경기도 시흥시 정왕동 건영 4차아파트 단지내 건영마트에는 최근 한 중학생으로부터 현금 2천원과 자신의 잘못을 참회하는 한통의 편지가 도착했다.

편지의 요지는 깡패들의 강요에 못 이겨 아이스크림을 훔쳤으나 뒤늦게 잘못을 깨닫고 용서를 구하는 내용이었다.

이 학생은 편지에서 "친구들과 농구를 마치고 집으로 가는데 깡패 형들이 부르더니 '돈 다 꺼내봐' 라고 했어요. '돈이 없는데요'라고 했더니 형들이 500원을 주면서 아이스크림 1개를 사고 4개는 훔쳐오라고 했어요. 제가 그 형에게 '정말 그런 거 못해요'라고 했더니 막 때리려고 해서 어쩔 수 없이 훔치게 됐습니다"라고 절도의 동기를 밝혔다.

이어 "가게에서 아줌마께 도움을 청하려 했지만 형들이 나중에 학교로 찾아와 때릴까봐 그렇게 하지 못했습니다. 아이스크림을 훔치고 나중에라도 아주머니를 찾아가 자초지종을 말씀드리려고 했지만 오해를 받을 까봐 이렇게 편지를 올립니다"라고 설명했다.

학생은 "아주머니 정말 죄송합니다. 그날 쌍쌍바 2개를 훔쳤습니다. 1천원은 쌍쌍바 값으로 받아주시고 다른 1천원은 저희가 양심을 속인 값으로 받아주세요. 아무리 형들이 협박해도 그런 짓은 하지 말았어야 했는데"라며 용서를 구했다.

마트 주인 김익배(56)씨는 "아내가 가게를 지키고 있는데 중학생 2명이 가게에 들어와 아이스크림 한 개값을 내고 2개를 그냥 집어들더니 도망쳤다고 합니다. 가게 밖까지 쫓아갔었지만 붙잡지 못했으나 다음날 한 초등학생이 들어와 현금 2천원이 든 참회의 편지를 놓고 갔습니다"고 말했다.

김씨는 "가끔 여러명이 들어와 주인의 눈을 현혹시킨 뒤 물건을 훔쳐 달아나는 청소년들이 있지만 대부분 호기심에 그런 짓을 하는 것으로 생각하고 이해한다"며 "그러나 이 학생처럼 자신의 잘못을 깊이 반성하고 참회의 편지를 써 보낸 것을 보고
큰 감명을 받았다"고 말했다.

kcg33169@yna.co.kr

'좋은생각 좋은글방' 카테고리의 다른 글

역사 의식  (0) 2005.05.26
맥심 커피를 마시는 방법  (0) 2005.03.25
태극기 바로 그리기  (0) 2005.03.04
생활상식 모음 100선  (1) 2005.01.10
내 휴대폰에 060 스팸 전화 오지 않게 하는 방법  (0) 2004.12.08
posted by 구름너머 2005. 3. 24. 09:09

'ORACLE' 카테고리의 다른 글

TOad  (0) 2005.04.08
테이블스페이스  (0) 2005.04.01
Pro*C 에서 COMMIT 에 대하여  (0) 2005.03.23
오라클 Document  (0) 2005.03.23
Direct-Load Insert의 사용방법(Oracle8)  (0) 2005.03.22
posted by 구름너머 2005. 3. 23. 13:43

소스를 보다가 보니 궁금증이 생겨서 찾아 보았다.

CASE I : EXEC SQL COMMIT; ==> commit 처리한다.

CASE II : EXEC SQL COMMIT WORK; ==> commit 처리한다. ANSI 호환을 위한 것임. CASE I 과 동일하다.

CASE III : EXEC SQL COMMIT WORK RELEASE; ==> commit처리후 모든 리소를 반환한다. sql 접속 종료.

The optional keyword WORK provides ANSI compatibility.

The RELEASE option frees all Oracle resources (locks and cursors) held by your program and logs off the database

참고 : http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a97269/pc_03dbc.htm#338

'ORACLE' 카테고리의 다른 글

테이블스페이스  (0) 2005.04.01
오라클 에러메시지 조회 : 9i  (0) 2005.03.24
오라클 Document  (0) 2005.03.23
Direct-Load Insert의 사용방법(Oracle8)  (0) 2005.03.22
Pro*C 강좌 파일이 잘되어 있는곳.  (0) 2005.03.22
posted by 구름너머 2005. 3. 23. 13:34
1. Oracle9i Database Online Documentation
(Release 2 (9.2))
==> http://otn.oracle.com/pls/db92/db92.homepage

2. 오라클 제품 관련 문서 (Oracle Documentation)
==> http://www.oracle.com/technology/global/kr/documentation/index.html
posted by 구름너머 2005. 3. 22. 15:01
Direct-Load Insert의 사용방법(Oracle8)

Direct-Load Insert의 사용방법(Oracle8)
======================================

Direct-Load Insert 는 SGA의 buffer cache를 거치지 않고 직접
Oracle data를 구성하고 입력하는 방법이다. 이 기능은 SQL*Loader의
Direct load와 비슷한 기능이다. 이 방법은 undo entry를 생성하지 않으므로
기본 insert보다 속도가 빠르다.
Direct-Load insert는 serial과 parallel mode를 둘 다 사용할 수 있다.


1. Serial, Parallel Insert

Direct-Load Insert는 parititioned와 non-partitioned table에 대해
사용할 수 있으며, 이 명령문 직후에는 반드시 commit이나 rollback이
필요하다.

(1) Serial Direct-Load Insert - data는 해당 segment의 HWM(high
water mark) 다음에 입력되며 commit이 실행되면 hwm이 바뀌면서
data를 볼 수 있게 된다.

(2) Parallel Direct-Load Insert into a nonpartitioned table
- 각 parallel server process는 새로운 temporary segment를
할당하고 데이타를 입력한 후에 commit이 실행되면 parallel
coordinator가 모든 temporary segment를 기존의 segment와 합친다.

(3) Parallel Direct-Load Insert into a partitioned table
- 각 partition마다 하나의 parallel server process를 할당받아서
hwm다음에 data를 입력하고 commmit이 일어나면 hwm이 바뀌게 된다.

2. Direct-Load Insert의 사용방법

Serial Direct-Load Insert는 APPEND hint를 통해 사용할 수 있다.
Parallel Direct-Load Insert는 APPEND 없이 PARALLEL hint만으로도
사용할 수 있다. 즉 Insert 시에 PARALLEL을 지정하면 무조건 Direct-Load로
작동하게 된다.

[예제1] APPEND hint의 사용

SQL> insert /*+ APPEND */ into emp select * from t_emp;
SQL> commit;
(direct insert후에 바로 select를 하기 전에 먼저 commit;을 해야
data를 확인할 수 있다.)

[예제2] PARALLEL hint의 사용

SQL> alter session enable parallel dml;
SQL> insert /*+ PARALLEL(emp,10) */ into emp
select /*+ PARALLEL(t_emp,10) */ * from t_emp;
SQL> commit;

위와 같이 Direct-Load Insert는 대량의 데이타를 한꺼번에 입력하는
경우에 사용하는 것이 좋으므로 일반 insert into .. values 구문에서의
사용은 지양된다.

3. Logging mode의 사용

Direct-Load Insert 방법은 Logging과 no-Logging mode를 둘 다 사용할
수 있다. no-logging mode로 하면 추가된 extent에 대한 정보 등 최소한의
data dictionary의 변경 사항만이 redo log에 적용된다.
그러나, 입력되는 data에 대한 정보는 발생하지 않으므로 속도는 훨씬 빨라진다.
no-logging mode는 table, index, tablespace 등에 지정할 수 있다.

SQL> alter table emp nologging;
SQL> alter session enable parallel dml;
SQL> insert /*+ PARALLEL(emp,10) */ into emp
select /*+ PARALLEL(t_emp,10) */ * from t_emp;
SQL> commit;

4. Space에 대한 고려사항

Direct-Load Insert는 기존의 segment 영역에 있는 입력 가능한 공간을
무시하고 Insert하므로 기존의 Insert보다 더 많은 space가 필요하다.
nonpartitioned table에 parallel insert를 할 경우에는 기존의 extent 영역에
있는 hwm 다음의 free space도 무시하고 새로운 segment를 생성하므로 insert하기
전에 이러한 추가적인 space를 고려해 두어야 한다.
nonparititoned table에 parallel insert 시에는 지정한 parallel server
process의 수만큼 새로운 extent를 생성하는데, 그 크기는 table에 지정한
next + next*pctincrease를 고려하여 만든다. 그러므로 이 작업을 하기 전에는
next와 pctincrease를 적합한 크기로 바꾸어 줄 필요가 있다.

from oracle.com

'ORACLE' 카테고리의 다른 글

Pro*C 에서 COMMIT 에 대하여  (0) 2005.03.23
오라클 Document  (0) 2005.03.23
Pro*C 강좌 파일이 잘되어 있는곳.  (0) 2005.03.22
내장함수 trunc 사용하기...  (0) 2005.03.04
[Oracle] 날자 오류 ORA-01839 피해가기...  (0) 2005.02.01
posted by 구름너머 2005. 3. 22. 13:37

http://cafe.naver.com/flyoracle.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=72

FOR절의 사용

    INSERT, EXECUTE, FETCH, DELETE, OPEN, UPDATE 등에서 ARRAY호스트 변수를 사용할
    경우 선택적으로 "FOR"절을 사용할 수 있다.
    특히 INSERT, DELETE, UPDATE문에서는 유용하다.
    char emp_name[100];
    short salary [100];
    int rows_to_insert;

    rows_to_insert = 25;
    EXEC SQL FOR :rows_to_insert INSERT INTO emp (ename, salary)
    VALUES (:emp_name, :salary);
    /* 100개의 row중에 25개만 insert했다. */

    "FOR"절은 UPDATE와 INSERT가 동시에 발생되는 TRANSACTION에서는 구현하기가 쉽다.
    ARRAY호스트 변수를 사용하면서 선택적으로 INSERT, UPDATE해야 하는 프로그램에서는
    "FOR"절이 유용하게 사용된다.

'ORACLE' 카테고리의 다른 글

오라클 Document  (0) 2005.03.23
Direct-Load Insert의 사용방법(Oracle8)  (0) 2005.03.22
내장함수 trunc 사용하기...  (0) 2005.03.04
[Oracle] 날자 오류 ORA-01839 피해가기...  (0) 2005.02.01
Oracle 기동/정지  (0) 2005.01.10
posted by 구름너머 2005. 3. 15. 15:58

1장. wait(2)

차례
1.1절. 사용법
1.2절. 설명
1.3절. 반환값
1.4절. 에러
1.5절. 예제

프로세스 정료를 기다린다.


1.1절. 사용법

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *status);


1.2절. 설명

주로 fork() 를 이용해서 자식 프로세스를 생성했을때 사용한다. wait() 를 쓰면 자식프로세스가 종료할때까지 해당영역에서 부모프로스쓰가 sleep 모드로 기다리게 된다. 이는 자식프로세스와 부모프로세스의 동기화를 위한목적으로 부모프로세스가 자식프로세스보다 먼저 종료되어서 자식프로세스가 고아 프로세스(PPID 가 1)인 프로세스가 되는걸 방지하기 위한 목적이다.

만약 자식 프로세스가 종료되었다면 함수는 즉시 리턴되며, 자식이 사용한 모든 시스템자원을 해제한다.

그런데 어떤이유로 부모가 wait()를 호출하기 전에 자식 프로세스가 종료버리는 경우도 있다(잘못된 메모리 연산등으로 인한 죽음, 혹은 정상적으로), 이럴경우 자식프로세스는 좀비프로세스가 되는데, wait()함수는 즉시 리턴하도록 되어있다.

wait()의 인자 status 를 통하여 자식 프로세스의 상태를 받아올수 있는데, 자식프로세스의 상태값은 자식프로세스의 종료값 * 256(FF) 이다.


1.3절. 반환값

종료된 자식의 프로세스 ID는 에러일경우 -1 그렇지 않을경우 0을 반환한다.


1.4절. 에러

다양한 원인에 의해서 에러가 발생할수 있으며 아래와 같은 에러 메시지들이 있다.

ECHILD

pid 로 지정된 프로세스가 존재하지 않거나, 해당 pid 가 자신의 자식 프로세스가 아닐경우

ENOTSOCK

s 가 소켓이 아닌 파일일경우

ENOTCONN

소켓이 연결되어 있지 않을경우

ENOBUFS

시스템에 연산을 위해서 이용할수 있는 자원이 부족할때


1.5절. 예제

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <string.h>

int main()
{
int pid;
int status;

pid = fork();
// 자식 프로세스
if (pid < 0)
{
perror("FORK ERROR :");
exit(0);
}

if (pid == 0)
{
int i;
for (i = 0; i < 5; i++)
{
printf("Child : %d\n", i);
sleep(2);
}
exit(3);
}
else
{
// 부모프로세스는 자식프로세스가
// 종료할때까지 기다린다.
printf("I wait Child(%d)\n", pid);
wait(&status);
printf("Child is exit (%d)\n", status);
}
}
위의 예제를 컴파일후 실행시키면 다음과 같은 결과를 보여준다.
[root@localhost c_source]# ./wait
I wait Child(12128)
Child : 0
Child : 1
Child : 2
Child : 3
Child : 4
Child is exit (768)