내 스타일 블로그

SEARCH RESAULT : 글 검색 결과 - oracle (총 2개)

POST : 프로그래밍 노트

(PL/SQL) about function

오라클 프로그래밍에 대해서 아무것도 모르는 상태에서 뭔가 하려니까 참 답답하다.
구글링 하면서 어찌어찌 짜집기 해서 원하는 기능을 구현하긴 했지만 제대로 돌아가고 있는건지는 좀 더 지켜봐야 할 듯.

function 생성하는 문법
CREATE [OR REPLACE] FUNCTION function_name [parameters]
RETURN return_datatype;
IS
Declaration_section
BEGIN
Execution_section
Return return_variable;
EXCEPTION
exception section
Return return_variable;
END;


function과 procedure의 가장 큰 차이점은 return값의 유무이다.
  • function은 return값이 있어야 하지만 procedure는 return값이 없다.
물론 parameter도 가질 수 있다. 파라미터명은 30 characters 이하이어야 함!

parameter를 선언하면서 좀 아리송 했던 부분은 varchar2(8) 이런 형태는 안된다는 것이다.
처음에는 왜 에러가 나는지도 몰랐다. 그냥 varchar2라고만 선언해야 한다.

아래처럼 하면 파라미터에 디폴트값을 설정할 수 있다.

cp_id in number := 1

function을 호출할 때 파라미터를 넘기는 방법에는 두 가지가 있다.

fun_exists_data (cp_id in number, data_type in varchar2, date in varchar2)
라는 function을 호출하려면

-- 순서에 의한
fun_exists_data(1, 'G', '20091201')

또는
-- 이름에 의한
fun_exists_data(cp_id => 1, data_type => 'G', date => '20091201')

처럼 하면 된다.



'프로그래밍 노트' 카테고리의 다른 글

Javascript로 파일 읽기  (0) 2009.11.16
Commons Digester  (0) 2009.11.11
Oracle SQL 메모  (0) 2009.10.19
grep과 vi 를 하나로  (0) 2009.09.19
Axis2 codegen bug  (0) 2009.08.09
top

posted at

2009. 12. 2. 00:19


POST : 프로그래밍 노트

Oracle SQL 메모

다른 column의 값으로 update하기
news라는 테이블에 reg_dt, modi_dt, cp_news_dt라는 column이 있다.
여기서 reg_dt와 modi_dt의 값을 cp_news_dt의 값으로 update를 하고 싶다.

update news
set reg_dt = cp_news_dt, modi_dt = cp_news_dt
where news_id in (
  select news_id
  from news
  where news_id between 20091001000000000 and 20091005000000000 );

select된 result를 group으로 카운팅 하기
news_id는 20090914000000000 와 같은 형식이다. 앞자리 8개를 통해 news의 등록 날짜를 알 수 있다. 날짜별로 news의 갯수를 알고 싶을 때는

select substr(reg_dt,0,8) reg_date, count(news_id)
from news
where news_id between 20090914000000000 and 20090919240000000
group by substr(reg_dt,0,8)
order by reg_date;

에휴...sql이 난 왜케 어렵니 -.-

'프로그래밍 노트' 카테고리의 다른 글

Javascript로 파일 읽기  (0) 2009.11.16
Commons Digester  (0) 2009.11.11
grep과 vi 를 하나로  (0) 2009.09.19
Axis2 codegen bug  (0) 2009.08.09
Cruise Control + SVN  (1) 2009.08.09
top

posted at

2009. 10. 19. 18:58


CONTENTS

내 스타일 블로그
BLOG main image
익현이의 프로그래밍 노트^^
RSS 2.0Tattertools
공지
아카이브
최근 글 최근 댓글
카테고리 태그 구름사이트 링크