AIX에서 테스트함

find . -name "*.js" | xargs grep "TransUtil"

촐라 간단 ㅋㅋ

'UNIX-Networking' 카테고리의 다른 글

OS별 메모리(물리)  (0) 2009.01.13
OS별 CPU정보 확인  (0) 2009.01.13
[UNIX] crontab 변경내용이 실행되지 않는다?  (0) 2007.11.14
[UNIX] find명령 활용 2  (0) 2007.05.11
[UNIX] find 명령 활용하기  (0) 2007.04.12
<%
String url = "thisPageName.jsp?";
Enumeration e = request.getParameterNames();
while(e.hasMoreElements())
{
String name = (String)e.nextElement();
if(request.getParameter(name)!=null)
{
url += name + "=" + request.getParameter(name) + "&";
}
else
{
url += name + "=" + "" + "&";
}
}
%>

얼마전 데이터를 입력하다가...

INSERT INTO ... VALUES (... 'Black&Decker'...);

명령을 실행했더니 '&' 문자 때문에 변수를 입력하라고 나온다.

오라클에서 '&'문자는 변수를 입력받는데 쓰이는 특수 문자라고 하더라

해결 방법은...

이걸 실행해주면 된다.

SQL>set define on

이걸 실행해주면 된다.



그림처럼 괄호가 변하는게 보기 싫이서...

찾아보니

editor 화면 -> 오른쪽마우스 ->Editing Options -> Languages 항목에서 PL/SQL 선택 확인 -> Edit 버튼 클릭 -> Highlighting tab -> Styles 항목에 "()" 목록을 찾으셔서 원하시는 셋팅으로 바꿔 주시면 됩니다

() 표시가 커져보이는 것은 Click 시에 Bold 가 적용되는것이 default 이어서 그렇습니다. 이 부분을 해제해 주시면 됩니다

내가 원한것은 볼드로 변하는건 그냥 두고

배경까지 변해서 글씨를 알아 볼 수 없게 하는걸 제거하는것

그부분에 대한 답변도 있었다.

외곽선 관련 사항이므로 BORDER 부분에서 효과를 없애시면 됩니다

네이버 토드정복하기 카페에서...

대부분 사용자들이처음 크론탭에 내용을 등록 할 경우

편집후 결과를 확인하기 위해서 크론텝을 수정 하는 시간을 기준으로 1~2분 후에 실행되도록

시간을 설정하곤 한다.

이런경우 간혹 수정된 크론텝의 잡이 실행되지 않고 넘어가는 경우가 있다.

crontab -l 로 확인해 보면 분명히 등록이 되어 있는데도 실행이 되지 않는경우

실행 예정 시간을 크론텝을 편집후 저장 할 시점에서 약 10분 이상 넉넉히 줘보자.

정확한 이유는 찾아보지 않았지만...

크론잡 데몬이 미리 실행될 크론텝 파일을 로딩하여 메모리에 올려놓는거 같다.

'UNIX-Networking' 카테고리의 다른 글

OS별 CPU정보 확인  (0) 2009.01.13
[UNIX] 특정문자열 포함한 파일 찾기  (0) 2008.07.09
[UNIX] find명령 활용 2  (0) 2007.05.11
[UNIX] find 명령 활용하기  (0) 2007.04.12
[UNIX sh] 하루 전 날짜 가져오기  (0) 2007.01.09

style="{FILTER:Chroma(Color='#ffffff')}

'Html-JavaScript' 카테고리의 다른 글

클립보드에 복사  (0) 2008.10.15
문자열 length구하기  (0) 2008.07.22
플래쉬 바탕이 투명하게 불러오기  (0) 2007.09.13
[JavaScript] string.trim() 메서드  (0) 2007.01.09
[HTML] tabindex 지정하기  (0) 2007.01.09

게시판 같은 프로그램을 작성하다 보면...

게시글 각각의 고유번호를 생성하기 위해 몇가지 방법이 있다.

그중 많이 쓰이는몇가지 방법의 사용법과 특징을 살펴보자

게시판 테이블은 대략 이렇게 생겼다.

CREATE TABLE BOARD

(

BOARD_COND VARCHAR2(5) NOT NULL /*게시판 종류 */

BOARD_NO NUMBER NOT NULL, /* 게시판 번호 */

....

CONSTRAINT BOARD_PK PRIMARY KEY(BOARD_COND,BOARD_NO)

)

BOARD_COND 는 게시판의 종류로 자유게시판, 자료실, 질문 답변 같은 구분을 한다.

BOARD_NO는 각 게시판의 글번호로 각 게시판내에서만 유니크하면 된다.

즉 자유게시판에서는 1번글이 하나만 존재해야 하지만

자유게시판에 1번글이 있다고 자료실에 쓰는 글이 2번이 되면 안된다.

뭔말인지 이해했으리라 믿고...

위와 같은 구조에서

우선 가장 쉽게 접근 할 수 있는 방법으로

해당 게시판의 글번호중 가장 큰 글번호를 가져와서 +1을 하는 방법이 있다.

자유게시판의 BOARD_COND가 'FREE' 라고 가정하고 이것을 쿼리로 표현해 보면...

INSERT BOARD

(

BOARD_COND,

BOARD_NO,

...

)

VALUES

(

'FREE',

NVL(SELECT MAX(BOARD_NO) FROM BOARD WHERE BOARD_COND = 'FREE',0)+1,

)

이렇게 하면 될것 같다... 글이 저장되는 순간 가장 큰 글번호를 가져와서 1을 더해서 인서트 하면 된다.

(NVL을쓰는 이유는... 해당 글의 게시판에 글이 한개도 존재하지 않을 경우를 위해 사용한 것임)

특징은 다음에 이야기 하기로 하고

두번 째로 할 수 있는 방법은

오라클 SEQUENCE를 사용하는 방법이 있다.

게시판용 자동증가 SEQUENCE를 생성하고 그것을 사용하는 것이다.

만약 생성한 시퀀스가 BOARD_SEQ 라고 한다면...

아래와 같은 쿼리를 만들 수 있다.

INSERT BOARD

(

BOARD_COND,

BOARD_NO,

...

)

VALUES

(

'FREE',

BOARD_SEQ.NEXT_VAL,

...

)

간단해 보이지만간단한 만큼 귀찮은 작업이 필요하다.

우선 글번호를 게시판 종류별로 사용하고 싶다면...

시퀀스를 게시판 종류만큼 생성해야 한다.

또하나시퀀스의 특성상 어떤 조건을 만족하지 못해서 입력이 되지 않고롤백이 된경우에도

시퀀스는 증가한다는 것이다.

고로 게시물 번호에 이가빠질 가능성이 있다(게시물을 삭제해서 생기는 결번과는 다른...)

세번째 방법으로 힌트를 사용하는 방법이 있다.

1번에MAX(BOARD_NO)+1을 사용하는방법과 비슷하지만

그거 보다 좀더 효휼적인 방법으로 게시물이 늘어나도 속도에 대한 부담이적을 것이다.

INSERT BOARD

(

BOARD_COND,

BOARD_NO,

...

)

VALUES

(

'FREE',

NVL((SELECT /*+ INDEX_DESC(BOARD BOARD_PK) */

BOARD_NO

FROM BOARD

WHEREBOARD_COND = 'FREE'

AND ROWNUM = 1) ,0)+1)

...

)

간단하게 설명한다면

BOARD_COND,BOARD_NO로 구성된 PK 인덱스를 역으로 스켄하면서

BOARD_COND = 'FREE'인 데이터중 첫 ROW(ROWNUM = 1)을 선택한다.

이경우 데이터가 늘어날 경우 BOARD_COND에 인덱스가 걸려 있어야 좀더 빠른 검색이 될것이다.

'DataBase' 카테고리의 다른 글

[Oracle] ''&'' 입력하기  (0) 2008.02.19
[Toad] 에디팅시 () 부분이 반전 제거  (0) 2008.02.19
[Oracle] 자동증가 SEQUENCE 생성  (0) 2007.10.09
[Oracle] 테이블 생성 (다중 컬럼 PK)  (0) 2007.10.09
오라클 START/STOP  (0) 2007.08.11

CREATE SEQUENCE NAME
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]

예제

CREATE SEQUENCE TEST_TABLE_SEQ
INCREMENT BY 1 -- 증가 단위는 1
START WITH 1 -- 1부터 시작
NOMAXVALUE -- 최대값 제한 없음
NOCYCLE
NOCACHE

사용

--값 가져오기

--무조건 다음 증가한 값을 가져온다

INSERT INTO TEST_TABLE

(TESTID1,TESTID2, ...생략... CREDATE,CREUSER)

VALUES

(TEST_TABLE_SEQ.NEXTVAL, ...생략... SYSDATE,'TESTUSER');

--값을 증가시키지 않고 조회만 하기

SELECT TEST_TABLE_SEQ.CURRVAL FROM DUAL;

※ 시퀀스 생성후 .NEXTVAL을 한번도 실행하지 않은 상태로 .CURRVAL로 현재 값을 조회하면

'ORA-08002: 시퀀스 KR_VENDOR_STAMP_SEQ.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다.'

에러 발생함.

CREATE TABLE TEST_TABLE

(

     TABLE_ID1 NUMBER NOT NULL
    ,TABLE_ID2 NUMBER NOT NULL

    ,FIELD1VARCHAR2(10)

    ,FIELD2 VARCHAR2(10)
    ,CREDATE DATE
    ,CREUSER VARCHAR2(30)
    ,CONSTRAINT TEST_TABLE_PK PRIMARY KEY(TABLE_ID1,TABLE_ID2)
)

위과 같이 생성하면 여러개를 필드를 묶어서 프라이머리 키를 생성한다.

<param name="wmode" value="Transparent">

+ Recent posts