반응형
출처 ... | 준팅
원문 http://blog.naver.com/jun6739/110017203980
# 날짜계산
select months_between(sysdate,to_date(2007-12-22','yyyy-mm-dd')) 
-- months_between(A,B) = A-B/30
--select add_months(sysdate,4) -- 특정일의 달수 더한 날
--select next_day(sysdate,'friday') -- 특정일의 다음주 요일
--select last_day(sysdate) -- 특정일의 해당 월의 마지막 날
--select round(sysdate,'dd') -- 특정일의 반올림(오후면 다음날..)
--select trunc(sysdate,'ww') -- 특정일의 전주 토요일(해당 전주의 마지막 날)에해당하는 날짜
--select trunc(sysdate,'D') -- 특정일의 주 일요일(해당 주의 첫째 날)에해당하는 날짜

from dual
 

/* 어제 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE-1) AND TRUNC(SYSDATE-1)+0.99999421
/* 오늘 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + 0.99999421
/* 내일 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1) AND TRUNC(SYSDATE+1)+0.99999421
/* 금주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'D') 
                        AND TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'D')+6.99999421
/* 차주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+8)-TO_CHAR(SYSDATE, 'D') 
                        AND TRUNC(TRUNC(SYSDATE)+14.99999421)-TO_CHAR(SYSDATE, 'D')
/* 금월 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'DD') 
                        AND TRUNC(LAST_DAY(SYSDATE))+0.99999421
/* 전월 */ 날짜칼럼 BETWEEN TRUNC(ADD_MONTHS(SYSDATE,-1)+1)-TO_CHAR(SYSDATE,'DD') 
                        AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE, -1)))+0.99999421
/* 차월 */ 날짜칼럼 BETWEEN ADD_MONTHS(TRUNC(SYSDATE),1)-TO_CHAR(SYSDATE,'DD')+1 
                        AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE),1)+0.99999421)

 

 

# 특정일 까지의 간격을 년, 개월, 일로 표현하기

SELECT 
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD'))/12) "년", 
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD')) - 
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD'))/12) * 12) "개월", 
TRUNC((MONTHS_BETWEEN(SYSDATE,TO_DATE(?', 'YYYYMMDD')) - 
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(?', 'YYYYMMDD')))) * 30.5) "일" 
FROM DUAL;

 


# 당월의 주차 구하기..
SELECT 
?' as "날짜" 
, ceil((to_number(substrb(?', -2, 2)) + 7 - to_number(TO_CHAR(TO_DATE(?','YYYYMMDD'),'D')))/7) as "월별 주차" 
from dual; 


 

# 시간 계산 SQL 
SELECT TRUNC(TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS')) || ' day ' || 
       TRUNC(MOD((TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS')),1)*24) || ' hour ' || 
       TRUNC(MOD((TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS'))*24,1)*60) || ' minute ' || 
       TRUNC(ROUND(MOD((TO_DATE(?','YYYYMMDDHH24MISS')-TO_DATE(?','YYYYMMDDHH24MISS'))*24*60,1)*60)) || ' sec ' 
       " Time Interval " 
FROM DUAL ;
 


출처 : oramaster.net
반응형
반응형
출처 여름초록이 | 이기
원문

 

질문자 평


 

일반적으로  알려진  가상메모리의 안정적인  증설 수치는 기본메모리의    1.5 ~ 2.5 배가  가장 안정적이라 합니다.

따라서 실제  메모리 수치가 ★256  이하인 경우  2배 까지  증설을 해 보시고

★256 이상인 경우  무리하지  않는  1.5배 수치로 무리 하지 않는 증설이 안정적인  효과를   얻을수 있습니다.


그리고 안정적인   가상메모리 효과는   하드용량의  20% 내외의 여유공간이 있어야 가상메모리의  효과를  얻을수 있습니다.

무리한 증설은  효과를 보지 못하며   하드에 무리를 줄수도  있을듯  합니다.

 

 

위 사진의 실제 메모리 크기가  512에   안정적인  증설수치  1.5배 를 하면 765 MB 로  설정을 하시면 됩니다.

512를  765 MB로   확장 증설을 하는 방법은 다음과 같습니다.

 

 

가상 메모리 설정 방법은 아래와  같습니다.

시작을 누르고  ㅡ>설정 또는 제어판 을 누르고 ㅡ>시스템을 더블클릭 해  시스템등록정보창을 엽니다.

 

1. 아래 시스템등록정보창의  그림의 고급텝 에서 ㅡ>설정 버튼을 누릅니다

 

 

 

2. 성능 옵션창이 뜨면 창의  맨위 고급 텝 을 누르고   창아래  변경 버튼을 누릅니다

 

 

3. 아래 그림에서 [사용자 지정 크기]에체크한후 현제 실제 메모리의 1.5~2.5 배를 [처음 크기] 와 [최대 크기] 를 같이 입력합니다.

 (예를들어 실제 메모리가 512 MB 일때  1.5배인  765 MB 로 입력합니다)

입력 후 [설정] 버튼을 누릅니다

 

 

4. 아래 창이 나타나면   반드시   [확인] 버튼을 눌러 시스템 재시작 합니다

70206

 

 

 

 

 

요즘 컴퓨터가 가상메모리 부족하다며 하드만 팽팽 돌아가고, 영 시원찮더니

위의 방법을 써보니 속도가 많이 빨라졌어요. ^^*

반응형
반응형

음.. 저는 지식in 검색해본 결과 2가지에 방법이 있더군요!

 

하나는 레지스트리에서 삭제하는 경우와 위 파일을 검색하여 파일을 삭제하는 경우입니다.

 

어느 하나만 해서 되는 것은 확인은 할 수 없었지만 확실히 하기 위해서 위 2가지를 모두 삭제 해주었습니다.

 

1. 레지스트리에서 삭제

HKEY_LOCAL_MACHINE - SOFTWARE - Microsoft - Windows - CurrentVersion - Explorer - Browser Helper Objects 이 폴더 하위폴더는 전부 삭제.(각자 하나씩 삭제 해주어야 합니다.)

 

2. 파일 삭제

시작 → 검색 → 파일 또는 폴더 실행.

왼쪽 하단쯤 보시면 모든 "파일 및 폴더" 선택.

위 오류나는 파일이름을 검색(확장자명은 제외) 하여 주시고 삭제해 주시면 됩니다.

2개의 파일이 검색되는 것을 볼 수 있을 것입니다. 2개 모두 삭제해 주세요.

 

재부팅하시면 오류 창이 사라진 것을 확인 할 수 입니다.

저도 컴터에 이런 오류창이 떠서 위 방법처럼하였더니 사라졌습니다.

반응형
반응형
출처 웅이^^ | 웅이
원문 http://blog.naver.com/nondureng1/10015246390

crond 데몬 /etc/rec.d/init.d/crond 스크립트에 의해 시작, 종료,재시작될 수 있다

기본 명령의 위치 :/user/bin/crontab

 =>아무곳에서도 실행 가능 함 등록,수정, 보기

 

사용형식

 crontab [ -u 사용자 id] 파일

 crontab [-u 사용자 id] { -l | -r | -e}

 


crontab -l
no crontab for truefeel

설정한 적이 없어 아직 비어있다

 

crond 실행 확인

=>ps -ef | grep crond

 

crond 시작

=> /etc/rc.d/init.d/crond start{restart | stop}

 

일반사용자에게 crontab 명령어 사용하도록 설정 허가

=> /etc/cron.allow 여기에 ID 등록

일반사용자의 crontab 명령어사용을 제한하고자 한다면

=>/etc/cron.deny  에 ID를 등록

 

  etc/cron.allow : 허용할 사용자 ID 목록
  /etc/cron.deny  : 거부할 사용자 ID 목록

  cron.allow 파일이 있으면 이 파일에 들어있는 ID만 사용 가능
  cron.deny  파일이 있으면 이 파일에 들어있는 ID는 사용 불가

  따라서 cron.deny에 truefeel ID를 추가해주면 됩니다.

 

 

등록 내용 설정

"분,시,일,월,요일, 실행명령" 순으로 설정

2) crontab 파일 형식


------    --------  ---------------------------------------------------
필  드    의  미    범  위
------    --------  ---------------------------------------------------
첫번째    분        0-59
두번째    시        0-23
세번째    일        0-31
네번째    월        1-12
다섯번째  요일      0-7 (0 또는 7=일요일, 1=월, 2=화,...)
여섯번째  명령어    실행할 명령을 한줄로 쓴다.
------    --------  ---------------------------------------------------

- 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
- # 으로 시작하는 줄은 실행하지 않는다.

 

 

crontab -e 을 하면 vi 에디터가 나온다.(환경변수 EDITOR에 따라 다른 에디터를 사용할 수 있다.)


crontab -e
# /home 디렉토리를 /BACKUP/home 으로 백업해둠
#
# 30분, 새벽 4시와 낮 12시, 모든 일, 모든 월, 모든 요일 
30 4,12 * * *  /usr/bin/rsync -avxH --delete /home /BACKUP/home > /dev/null 2>&1
#
# 파일/디렉토리 퍼미션 설정
# 40분, 새벽 1시, 매주 일요일
40 1    * * 0  /root/bin/perm_set.sh   > /dev/null 2>&1

 

위는 매일 4:30분과 12:30분에 rsync 명령을, 매주 일요일 1:40분에 perm_set.sh를 실행함을 의미한다.

vi 에디터를 통해 설정을 하므로 중요한 몇 가지 에디터 사용법은 익혀야 한다.

----  -----------------------------------------------------------------------------
키    의미
----  -----------------------------------------------------------------------------
i     현재 칸에 글을 넣는다.
o     다음줄에 글을 넣는다.
dd    한줄을 삭제한다.
:wq   저장하고 빠져나온다.
ESC   설정중에 명령어 모드(위의 i, o, dd 등을 사용할 수 있는 상태)로 빠져 나온다.
----  -----------------------------------------------------------------------------


3) 설정 예

시간 설정에서 몇가지 의미있는 것들을 알아보자.

- '*'표시는 해당 필드의 모든 시간을 의미한다.
- 3,5,7 와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다.
(2~10까지 3간격으로. 즉, 3,6,9를 의미함)

           

원하는 시간형  식
  매주 토요일 새벽 2:20  20  2     *  *  6  명령어
  매일 오후 4,5,6시  0  4-6   *  *  *  명령어
  매일 2시간간격으로 5분대에  5  */2 *  *  * 명령어
  매월 1일 새벽 1:15  15  1   1  *  *  명령어
  1,7월 1일 새벽 0:30  30  0   1  1,7  *  명령어

 


=>  > /dev/null  2>&1 이 무슨 뜻입니까?

  지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는(/dev/null)는
  뜻입니다. 만약 결과와 에러를 파일로 저장하려면 /dev/null 대신 파일명을 적어주면 됩니다.

 

ex)

10 2 * * * /app11/minsang/APP/ldap/run.sh > /app11/minsang/APP/ldap/cron_error.log
55 13 * * * /app11/minsang/APP/mail/run.sh > /app11/minsang/APP/mail/log/mail_cron_error.log
0,30 8-19 * * * /app11/minsang/APP/sms/sendAdmin.sh > /app11/minsang/APP/sms/log/cron_admin_error.log
0 19 * * * /app11/minsang/APP/sms/sendVisitor.sh > /app11/minsang/APP/sms/log/cron_visitor_error.log
* 8-19 * * * /app11/minsang/APP/pdp/run.sh > /app11/minsang/APP/pdp/log/cron_pdp_error.log
0,5,10,15,20,25,30,35,40,45,50,55 8-19 * * * /app11/minsang/APP/seoul_portal/run.sh /app11/minsang/APP/seoul_portal/log/cron_error.log
50 13 * * * /app11/minsang/APP/call/run.sh > /app11/minsang/APP/call/log/cron_call_error.log
* 0 * * * /app11/minsang/APP/broken_promise/run.sh > /app11/minsang/APP/broken_promise/log/brokenpromise_cron_error.log

반응형
반응형

with grant option과 with admin option  

(둘다 실행 권한을 받은 user가 다시 실행 권한을 다른 user에게 줄 수 있게 해주는 option이다.) 
-- 차이는 with admin option으로 권한을 받은 user1이 다른 user2에게 권한을 부여한 후 user1으로부터 
  권한을 revoke하면 user1의 권한만 revoke되나 
  with grant option으로 부여하면 user1에게 revoke 될 시 user2의 권한도 cascade로 revoke된다. 


oracle@swsvrctr:/home/oracle> sqlplus internal 

SQL> col grantor format a10 
SQL> col grantee format a10 
SQL> col table_name format a10 
SQL> col table_schema format a10 
SQL> col privilege format a25 
SQL> grant create user to scott with admin option; ==> with admin option으로 권한 부여후 
SQL> connect scott/tiger 
SQL> grant create user to oracle; ==> 다시 oracle 에게 같은 권한 부여후 
SQL> connect internal 
SQL> select * from dba_sys_privs 
 2  where grantee in ('SCOTT','ORACLE'); 

GRANTEE    PRIVILEGE                 ADMIN_ 
---------- ------------------------- ------ 
ORACLE     CREATE USER               NO 
SCOTT      CREATE USER               YES 
SCOTT      UNLIMITED TABLESPACE      NO 

SQL> revoke create user from scott; ==> scott의 권한을 revoke 
SQL> select * from dba_sys_privs 
 2  where grantee in ('SCOTT','ORACLE'); 

GRANTEE    PRIVILEGE                 ADMIN_ 
---------- ------------------------- ------ 
ORACLE     CREATE USER               NO ==> scott의 create user 권한만 revoke되었다.  
SCOTT      UNLIMITED TABLESPACE      NO     oracle권한은 그대로 

SQL> grant select on dept to oracle with grant option; ==> with grant option 으로 권한 부여후 
SQL> connect / 
SQL> create user myuser identified by myuser1$ 
 2  default tablespace ts_user1 
 3  temporary tablespace temp; 

SQL> grant select on scott.dept to myuser; ==> 다시 같은 권한을 다른 myuser에게 부여 

Grant succeeded. 

SQL> select * from all_tab_privs 
 2  where table_name='DEPT'; 

GRANTOR    GRANTEE    TABLE_SCHE TABLE_NAME PRIVILEGE                 GRANTA 
---------- ---------- ---------- ---------- ------------------------- ------ 
SCOTT      ORACLE     SCOTT      DEPT       SELECT                    YES 
ORACLE     MYUSER     SCOTT      DEPT       SELECT                    NO 

SQL> revoke select on dept from oracle; ==> oracle의 권한을 revoke 

Revoke succeeded. 

SQL> select * from all_tab_privs           ==> with grant option으로 생성된 이하 myuser의 권한도 
 2  where table_name='DEPT';      revoke 되었다. 

no rows selected

 

 

===================================================================================

http://cafe.naver.com/jjuvva.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=287

푸뇽(edood)님 께서 작성하신 글입니다.

스크랩이 안되서 긁어왔습니다.

반응형
반응형
출처 PC정비사 따라잡기!! | 피씨지기
원문 http://blog.naver.com/larc0412/140032521907
◈ 방법 1 

1. 시작->실행->regedit 입력 후 확인. 

2. HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun 폴더로 이동 후 우측 창에 나오는 파일 중에서 기본값만 제외하고 모두 삭제.(단, CTFMON이 있다면 그걸 제외하고 삭제합니다.) 

3. HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects 폴더 밑의 하위폴더를 다 삭제합니다. 

4. HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerURLSearchHooks 폴더로 이동 후 우측 창에 나오는 파일 중에서도 기본값만 제외하고 모두 삭제 

5. HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun 폴더로 이동 후 우측 창에 나오는 파일 중에서도 기본값만 제외하고 모두 삭제. 

6. 시작->설정->제어판-> 인터넷 옵션-> 쿠키 삭제 , 파일삭제 (오프라인 항목체크) 를 합니다. 

7. 설정-> 개체보기-> 모두 선택한후 삭제해 주십시오. (오류가 나면서 삭제안된다고 하면 재부팅후 다시 삭제해주십시오. 분명히 100% 다 삭제됩니다.) 

8. 보안탭에서-> 기본 수준 클릭, 개인정보-> 기본값 클릭 

9. 연결탭으로 이동하여 LAN 설정을 클릭 - 프록시 서버와 자동 구성의 체크박스에 체크를 모두 빼주십시오. 

10. 고급탭으로 이동하여 기본값 복원 버튼을 클릭 한뒤 URL 을 항상 UTF-8 로 보냄, 타사 브라우저 확장명 사용에 체크를 해제 해 주십시오. 

11. 컴퓨터 재부팅. 

만약 방법 1로 했는데도 안된다면...... 방법 2로 해봅니다. 


◈ 방법 2 

요즘 악성코드는 악성코드 검색 및 치료프로그램 하나만으로 치료되지않습니다.^^; 

더구나 안전모드로 부팅한 후에 해 주어야만 악성코드 및 바이러스가 해결되는 것들이 많이 있습니다. 

제의 주관적 생각상 바이러스를 가장 완벽히 해결해 주는 것은 안철수 V3시리즈나 터보백식이라고 생각합니다. 

프로그램이 없다면 '안철수연구소'사이트 가서 (http://info.ahnlab.com/download/evaluate_v3.html) V3 pro 30일 데모버전을 다운받아 설치하여줍니다. 

당연히 업데이트를 해보고 꼭 재부팅합니다. 

위에서 말했듯이 안전모드에서만 해결할수 있는 것들이 있기 때문입니다. 

1. 전원버튼 누르자마자 F8번 키를 '톡톡' 눌러서 안전모드로 부팅. 

2. 설치된 V3 시리즈 백신 프로그램을 이용하여 검사 치료합니다. 

- 당연히 전체검사를 해서 완벽히 치료를 해야겠지요.^^ 

이렇게 하면 왠만한 바이러스를 치료 되었을 것이라고 생각됩니다. 


* 이제 제가 추천하는 악성코드 프로그램을 알려드리겠습니다. * 


세계적으로 많이 쓰이는 프로그램은 'ad-aware se' 라는 프로그램입니다. 
네이버자료실 또는 심파일에서 'ad-aware se' 를 검색하면 
Ad-aware SE Personal 1.05 라고 나오는 실행 파일을 다운 받고, 설치하여 줍니다. 
더구나 무료로 업데이트가 되므로 해줍니다. 

http://download.naver.com/pds_leaf.asp?pg_code=2814&pv_code=3 

사용방법은 

1. 시작->프로그램-> ad-aware se를 실행 
2. scan now->perform full scan을 선택. 
3. Next를 클릭 후 검사 시작. (컴퓨터의 하드디스크의 용량 및 설치된 프로그램이 많을 수록 시간이 오래 걸립니다.) 
4. 검사가 끝나면 Next->quarantine 치고 파일 이름입력. 
5. Next 눌러 삭제. 악성 파일, 쿠키를 삭제합니다. 
6. 컴퓨터 재부팅. 


만약 방법 2까지 되지 않으셨다면 마지막 방법은 이것뿐입니다. 

◈ 방법 3 

1. IE 6.0 을 다운로드 합니다. 다운로드만 하고 실행은 시키지 말아 주십시오. 

2. 시작->실행->regedit 입력 후 확인. 

3. HKEY_LOCAL_MACHINESoftwareMicrosoftActive Setuplnstalled components{89820200-ECBD-11CF-8B85-00AA005B4383} 폴더로 이동하여 
{89820200-ECBD-11CF-8B85-00AA005B4383}이 선택된 상태에서 메뉴중에 파일 - 내보내기를 이용하여 백업을 받아 두시기 바랍니다. 

4. 백업을 받아 두셨으면 위 경로에 해당하는 {89820200-ECBD-11CF-8B85-00AA005B4383}폴더를 삭제 시켜 줍니다. 

5. 삭제 후 열린 창을 모두 닫고 ie6 다운받아 놓은 것을 설치해 주시기 바랍니다. 

꼭 재부팅을 해줍니다. 

6. 인터넷 실행 시킨 후 

7. 도구->Windows Update 클릭. 

8. 모든 중요 업데이트와 Windows Update를 하나도 빠뜨리지 말고 다 업데이트 해 놓습니다.(단, 윈xp서비스팩2는 설치하지않습니다. 하지만 유명메이커 피씨라면 크게 상관없습니다.) 

9. 설치과정은 몇번의 재부팅될것입니다. 그렇지만 꼭 하나도 없을 때까지 하셔야 합니다. 

10. 이젠 익스플로러를 재설치하고 패치까지 했으므로 악성코드는 분명히 없어졌을 것이라고 생각됩니다. 


◈ 이젠 ad-aware se와 같이 설치된 Ad-watch se professional을 실행시켜 놓으면 실시간으로 악성코드를 방지해 줍니다. 

이렇게 까지 했는데도 안되면 윈도우 재설치뿐이네요..
반응형
반응형
출처 머릿속에 남겨두고 싶은 것들.. | 세실리아
원문 http://blog.naver.com/essencream/30008067262

먼저 당나귀클린을 설치하신분, [

제어판]=[프로그램 추가/제거] 에서 당나귀클린 제거.

트레이아이콘에서 당나귀클린을 종료 그리고 [C드라이브]에 가서 [Program Files]에서 당나귀클린을 쉬프트 + 딜리트 눌러서 삭제.

그리고 당나귀를 사용하지 않으실 꺼면 DonkeyP2P 폴더를 제거하시면 되지만 당나귀를 쓰실 분들은 update_check인가? 하는 파일을 제거해 주시면 됩니다.

그리고 [시작]-[실행] regedit 입력 후 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run에서 당나귀클린이라고 되있는 것을 제거 합니다. 그리고 왼쪽 창에서 Run을 클릭 마우스, 오른쪽 버튼을 눌러서 [사용권한]을 클릭 [고급] 에서 [펀집]을 보면 값 설정 이란게 있는데 이것을 거부에 체크해 주시면 됩니다. 그리고 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 에서 DonkeyP2P어쩌구 하는 것을 제거하면 끝입니다... 다소 복잡하긴 하지만 이게 아주 완벽한 방법입니다.
(출처 : '당나귀클린삭제' - 네이버 지식iN)

반응형
반응형

view를 통해 insert 가 되는데 with check option 을 사용 여부에 따라 뷰의 조건에 해당하는

데이터만 삽입,삭제,수정 할 수 있다.

 

--예제를 보시면 훨씬 쉽게 이해 하실 수 있을 겁니다.

 

ex)  

create table testtable
(empno number(10) ,
deptno number(10),
name varchar2(20))

tablespace users;

 

insert into testtable values(10,20,'abc');

insert into testtable values(20,30,'ccc');

  이런식으로 대충 몇개 쭈-욱 데이터를 넣어요!

 

이제 view를 만들어봅시다.

 

1. with check option을 사용하지 않은 view

create view testview2
as
select * from testtable where empno in (10,20,30,40);

 

2. with check option을 사용한 view

create view testview
as
select * from testtable where empno in (10,20,30,40)

with check option;

 

※ with check option 이 어떤 기능을 하는지 여기서 알수 있을 것입니다.

view를 통해서 insert가 가능 합니다.

 

먼저 with check option 을 사용하지 않은 view 를 통해서 insert를 해봅시다.

 

insert into testview2 values(10,20,'view_com');

select 문을 실행시키면 데이터가 입력된 것을 확인 할 수 있습니다.

select * from testview2;

(이것은 view는 테이블이 아니기 때문에 testview에 입력된 것이 아니라 testtable에 입력된 것입니다.)

 

insert into testview2 values(80,90,'view_com2');

이것도 역시 테이블에서 확인해 보면 정상적으로 삽입 된 것을 볼 수 있다.

(view에 제약조건이 걸려 있기 때문에 view에는 나타나지 않고 testtable에는 나타난 것을 확인합니다.)

여기까지 정상적으로 모든것이 insert가 된 것을 확인 할수 있을 겁니다.

 

이제, with check option을 사용한 view 를 통해서 insert를 해봅시다.

위에서 insert한 값과 똑같이 넣어 보겠습니다.

insert into testview values(10,20,'view_com'); 아무 이상없이 실행 될것입니다.

 

하지만 

insert into testview values(80,90,'view_com2');

ORA-01402: 뷰의 WITH CHECK OPTION의 조건에 위배 됩니다.

이런 오류가 나오시는 것을 볼 수 있을 것입니다.

 

결론을 내리자면 with check option은

view를 만들 때 해당 제약조건 안에서만 삽입,삭제,수정이 가능하다는 것입니다.

 

위 예제는 view를 만들 때 empno가 10,20,30,40인 것들만 가져오는 것이였습니다.

그런데 with check option을 쓴 view에

empno에 80인 데이터를 넣을려고 하니 오류메세지가 나오는 것입니다.

 

알고보면 굉장히 간단하고 쉬운건데 너무 제가 장황하게 설명한 것 같습니다.

저도 이것에 대해 몰랐습니다. 인터넷에 찾아봐도 확실한 대답이 없었던 터라 책도 찾아보고

인터넷 자료도 수집하면서 몇 시간을 고생했답니다. 근데 너무 간단하죠!^^ㅎㅎㅎ

반응형

'Oracle > Oracle Study' 카테고리의 다른 글

Row Migration  (0) 2008.11.30
10g Archive Mode로 변경  (0) 2008.10.01
Rollup & Cube & Grouping 차이  (0) 2008.05.16
with grant option & with admin option 차이  (0) 2008.05.14
오라클 아스키로 특수문자 업데이트  (0) 2006.10.16
반응형

사용자의 데이터가 저장되어 있는 테이블에 입력, 수정, 삭제작업을 수행하다 보면 자주 발생하는 에러현상이 있습니다. 이 현상은 테이블이 저장되어 있는 테이블스페이스의 공간이 부족한 경우에 주로 발생합니다.

 

• ORA-01653 에러코드가 발생하는 경우
• 테이블스페이스를 생성 또는 변경하거나 크기를 관리해야 경우


 

<ORA-01653 상황 만들기>

 

 1) 테스트를 위해 TEST 테이블스페이스를 생성하십시오. 
[C:\] sqlplus "/as sysdba" 
SQL> startup force 
SQL> create tablespace test 
datafile 'c:\oracle\oradata\ora92\test_01.dbf' size 3M; 
 
SQL> select tablespace_name, bytes, file_name from dba_data_files;


 2) TEST 테이블을 TEST 테이블스페이스에 생성하십시오. 
[C:\] sqlplus "/as sysdba" 
SQL> create table test(name char(30)) 
tablespace test 
storage(initial 2M);


 3) TEST 테이블이 생성되었으면 연속적으로 행들을 입력하여 익스텐트 확장 시 에러가 발생하도록 하십시오. 
SQL> declare
        x  number(2);
      begin
        for x in 1 .. 10000   loop
          insert into  test values('111111111111111111111111111111');
        end loop;
      end;
      /
SQL>  /
SQL>  /
SQL>  /         ← 익스텐트 에러가 발생할 때 까지 반복적으로 실행하십시오.
SQL>  /
declare
*
1행에 오류:
ORA-01653: SYS.TEST 테이블을 128(으)로 TEST 테이블스페이스에서 확장할 수
없습니다
ORA-06512: 줄 5에서


 

<ORA-01653 해결 방법>

 

4) 테이블스페이스의 크기가 부족하여 발생하는 에러를 해결하기 위해서는 해당 테이블스페이스에 새로운 데이터 파일을 추가하는 방법입니다. 
SQL> alter tablespace test
      add datafile 'c:\oracle\oradata\ora92\test_02.dbf' size 3M;

SQL> declare
        x  number(2);
      begin
        for x in 1 .. 10000   loop
          insert into  test values('111111111111111111111111111111');
        end loop;
      end;
      /
SQL>  select tablespace_name, bytes, file_name from dba_data_files;

SQL>  host  dir  c:\oracle\oradata\ora92  
→    "test_02.dbf" 파일의 존재여부와 파일 크기를 확인하십시오.

      test_01.dbf
      test_02.dbf
 
 5) 테이블스페이스의 크기를 늘리는 두 번째 방법은 기존의 데이터 파일을 RESIZE절로 늘리는 방법입니다. 
SQL> alter database 
     datafile 'c:\oracle\oradata\ora92\test_02.dbf'  resize 5M;

SQL> select tablespace_name, bytes, file_name from dba_data_files;
SQL> host  dir  c:\oracle\oradata\ora92
 
 6) 실습이 끝나면 TEST 테이블스페이스를 삭제하십시오. 해당 테이블스페이스 내에 관련 테이블이나 인덱스가 생성되어 있으면 테이블스페이스를 삭제할 수 없습니다. 
SQL>  drop tablespace test;
drop tablespace test
*
1행에 오류:
ORA-01549: 테이블스페이스가 비어있지 않으므로 INCLUDING CONTENTS 옵션
을 사용해 주십시오

SQL>  drop tablespace test including contents;

SQL>  select tablespace_name, bytes, file_name from dba_data_files;
SQL>  host  dir  c:\oracle\oradata\ora92
      test_01.dbf
      test_02.dbf
 
 7) 테이블스페이스를 삭제하더라도 관련 데이터 파일은 삭제되지 않습니다. 추가적인 작업을 통해 관련 데이터 파일을 함께 삭제하십시오. 
SQL>  host del c:\oracle\oradata\ora92\test_0*
SQL>  host dir  c:\oracle\oradata\ora92
SQL>  exit
 

 

 

http://www.dbguide.net/oracle/oracle_02.jsp 참조.

반응형

'Oracle > Oracle Error' 카테고리의 다른 글

ORA-14400  (0) 2010.04.01
ora-27476, ora-06512  (0) 2010.01.26
Linux Oracle9i Ora-01031:insufficient privileges  (0) 2008.11.19
Ora-32004, Ora-19905:10g Archive mode 설정 후 Error  (0) 2008.10.02
ORA-01653  (0) 2006.10.02
반응형
출처 pride FC | 효도르
원문 http://blog.naver.com/sungs6031/40026502455

UPDATE t SET A = REPLACE(A, CHR(9),'')
 WHERE A LIKE '%'||CHR(9)||'%';

 

CHR(44)     ,                   '||CHR(44)||'
CHR(39)     '
CHR(38)     &
CHR(9)      탭문자
CHR(13)     라인피드
CHR(10)     캐리지리턴

 

UNIX : CR
WIN : LF + CR

 

Ex) 웹브라우저에서 textarea에서 입력하였을때  '엔터' 찾기

      select * from table_name where 특정칼럼 like '%'||chr(13)||chr(10)||'%' ;
(출처 : 'sql 조회시 엔터키를 포함하고 있는 문자열을 어떻게 찾나요?' - 네이버 지식iN)

 

 

=====================================================================================

 

제 의견을 덧붙인다면...

 

레코드 값에 간혹 넣지도 않은 이상한 특수기호가 들어 있는 경우가 있을 것입니다.(ex. ♪)

저 8분음표 기호는 라인피드라고 하네요. 일일히 select 문을 쳐보면서 나온겁니다.

라인피드가 아직 정확하게 뭔지는 모르겠지만 어쨌든 찾았습니다.ㅎㅎㅎ

8분음표를 지우고 싶다면 update를 해주세요..

 

ex) update table_name set column_name = TRIM(chr(13) from column_name)

      where [조건문]

 

cf. TRIM은 없애주는 기능이라는 거 다 아시져!^^;; 하나의 문자만을 없애준다는게 단점!

     2개를 지우고 싶다면 update를 한 후 다시 한번 더 해주셔야 합니다.

반응형

'Oracle > Oracle Study' 카테고리의 다른 글

Row Migration  (0) 2008.11.30
10g Archive Mode로 변경  (0) 2008.10.01
Rollup & Cube & Grouping 차이  (0) 2008.05.16
with grant option & with admin option 차이  (0) 2008.05.14
view에 사용되는 with check option  (0) 2006.10.20
반응형

qorugh1 (2006-09-22 23:56 작성)  

저도 최근 안 것인데요

 

실행에서 regedit 를 친후

HKEY_LOCAL_MACHINE₩SOFTWARE₩Microsoft₩Windows₩CurrentVersion₩SharedDLLs 라는 것을 일단 잡습니다.

 

 그러면 옆에 많은 개체들이 뜨는데 그건 일단 보지 말고

 

 sharedDDLs를 오른쪽 클릭으로 사용권한을 클릭합니다

 

 그러면 창이 하나 뜨죠?

 

 거기서 고급을 클릭하면 부모개체 어쩌고 하는 것이 있습니다.

 

 그것을 체크해줍니다.

 

 그러고나서 확인만 누르면 끝납니다. 이제 모든것이 해결! 설치든 제거든 업데이트든 얼마든지 해보세요
 

(출처 : 'ms office 2000을 지우고 2003을 깔려고 하는데 오류가 나네요' - 네이버 지식iN)

 

 

★★ qorugh1 님의 글입니다.

반응형
반응형

집필자 : gene233  (2006-09-17 00:43)

 

노하우사전 분류 :  IT 
 
저도 이 문제때문에 지식인 검색을 해보고 했지만 마땅한 답변이 없는 것 같아

이것 저것 다 해보다 발견한 방법을 올려보려 합니다.

 

우선 인터넷을 띄우시면 주소표시줄 앞에 주소(D)라고 되어 있는 부분이 있습니다.

거기에 마우스포인트를 갖다대시고 오른쪽 클릭을 하면 팝업이 뜹니다.

 

그 팝업엔 기본적으로 표준단추/주소표시줄/연결/도구모음잠금/이동단추
(사용자에 따라서 백신프로그램이 있을 수도 있지만)
등이 있습니다.

 

그런데 거기에 만약 SEARCH(검색)프로그램이 함께 뜬다면, 그것을 지워줘야 합니다.

제 생각엔 다른 검색 프로그램이(예를 들면, 네이버 점프, searchMe 등등) 깔리면,

그 검색프로그램이 윈도우 익스플로러 검색기능을 대신하게 되어

윈도우인터넷옵션에서의 기능들이 안 먹히는 것 같습니다.

 

그래서 제어판에 가셔서 프로그램 추가/삭제에서 그 프로그램을 찾아 삭제해줍니다.

 

삭제될 때 떠 있던 인터넷창이 닫힐 것이고, 삭제가 다 된 후 인터넷을 열면 목록이

다 사라져 있을 것입니다.

 

도움 되셨길 바라며...


 
내용출처 : [직접 서술] 직접 서술

(출처 : '인터넷 익스플로러에서 주소창 목록 지우기' - 네이버 지식iN)

 

 

★★ gene233 님의 글이였습니다...

 

 

=======================================================================================

네이버에 물어봐서 다른 것들도 찾아봐서 해보았지만 효과를 못 보았습니다.
이 글을 읽고 나서 간단하게 프로그램만 지우면 된다는 것을 알았습니다.
위 글에 나와있는 프로그램들이 없으시다면 다른 방법을 찾아보세요!!

반응형
반응형
시작->실행
 
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove
반응형
반응형
출처 존재하는가? | 곰팅이얌
원문 http://blog.naver.com/assembly1/150006411379

임의의 테이블(A)을 128(으)로 임의의(TS) 테이블스페이스에서 확장할 수 없습니다. 라는 에러메시지가 보이면 적용할 해결법이다.

 

**********************************************

UPDATE DBA_DATA_FILES
SET AUTOEXTENSIBLE = 'YES'
WHERE TABLESPACE_NAME='TS_ETSD'

 

DBA_DATA_FILES 뷰테이블이라 위의 문장은 실행할 수 없다(오라큰 문외한이기에 시도를...)

**********************************************

 

*********기존 테이블 스페이스 삭제*************

DROP TABLESPACE TS_ETSD (INCLUDING CONTENTS) ===> 테이블 스페이스에 정보가 있는 경우 추가되는 문장

 

*********새로운 테이블 스페이스 생성***********

CREATE TABLESPACE TS_ETSD
DATAFILE
  'C:\ORACLE\TS_ETSD.DBF' SIZE 1024M 
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED BLOCKSIZE (8K)===> 다른 테이블 스페이스에 잡혀있는 블럭사이즈로 잡아야 에러(ORA-29339)가 발생하지 않는다.

 

==========================================================================================

BLOCKSIZE (8K) 가 아니라 BLOCKSIZE 8K로 하니깐 되더라고요! 
안되시는 분들은 괄호를 빼고 해보시길 바랍니다.^^

==========================================================================================

 

나의 조치...

 

테이블에 입력,수정,삭제작업을 여러번 수행을 하면 발생하는 에러 현상입니다.

이 에러는 저장되어 테이블 스페이스의 공간이 부족한 경우 자주 발생하는 것입니다.

 

해결하는 방법은 2가지 방법이 있습니다.

1. 테이블스페이스의 datafile을 하나 더 만들어 주는 것.

    alter tablespace 테이블스페이스 이름

      datafile ='저장될 datafile의 경로명' size 100m;

    ex) alter tablespace users

           datafile = 'c:\prod\disk5\user02.dbf' size 200m;

 

2. 테이블스페이스의 기존 datafile의 size를 늘려 주는 것.

    alter database 

      datafile ='저장될 datafile의 경로명' resize 100m;

 

    dbguide라는 곳에서 참조하였습니다.

자세한 내용은 http://www.dbguide.net/oracle/oracle_02.jsp 이곳에서 확인해 보시거나

저의 Oracle Study에 ORA-01653 에 대한 것만 참조해서 써 놓았습니다.

반응형

'Oracle > Oracle Error' 카테고리의 다른 글

ORA-14400  (0) 2010.04.01
ora-27476, ora-06512  (0) 2010.01.26
Linux Oracle9i Ora-01031:insufficient privileges  (0) 2008.11.19
Ora-32004, Ora-19905:10g Archive mode 설정 후 Error  (0) 2008.10.02
ORA-01653  (0) 2006.10.20

+ Recent posts