database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
ㆍSybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Sybase Q&A 3992 게시물 읽기
No. 3992
프로시져 호출 할 때의 인수처리 및 컴파일
작성자
프로시져..
작성일
2010-01-31 19:02ⓒ
2010-01-31 19:03ⓜ
조회수
11,372

 

프로시져를 생성하였는데요..

IF EXISTS ... 해서 procedure를 드랍하고

CREATE procedure ( IN execute_day char(8))

BEGIN

....

END;

 

이런식으로 프로시져를 만들어서 특정 디렉토리에 *.sql 파일로 저장을 하였습니다.. 툴이나 DB내에서 컴파일 하는 방법 말구

UNIX환경에서 명령어(dbisqlc) 날려서 특정 디렉토리에 있는 프로시져를 호출하여 컴파일 및 프로시져 실행이 가능한지요..

또한...프로시져를 컴파일 한 뒤 실행 할 때.. 저 위의 프로시져 같이 인수를 넣어서 실행하려면 어떻게 해야하나요? ㅠㅠ

 

dbisql -c DSN=서버명 -q execute 프로시져명       까지 밖에 잘 모르겠습니다. 해도 에러가 나고..ㅠㅠ 어떻게 컴파일 및 실행(인수포함) 해야하는지 궁금합니당!

이 글에 대한 댓글이 총 4건 있습니다.

일단 2개의 SQL을 만듭니다.

1. 프로시져 생성 SQL

   - 이름 : create_proc.sql

  - 내용

   if exists .... 

   create procedure sample ( IN execute_day char(8))

   begin

   end

   ;

 

2. 생성된 프로시져 실행 SQL

   - 이름 : exec_proc.sql

   - 내용

    call sample ('20100202');

 

 

위의 2개 SQL을 실행

1. 프로시져 생성 및 컴파일 방법 : dbisqlc -c dsn=data_source_name -q create_proc.sql

2. 생성된 프로시져 실행 방법 : dbisqlc -c dsn=dat_source_name -q exec_proc.sql

 

참고로 생성된 프로시져를 실행할 때 그 프로시져가 어떤 데이터를 SELECT한 결과를 산출하여 결과를 파일형태로 받아보고 싶다면 2가지 방법이 있는데 두번째 방법을 권장합니다.

첫번째 :  dbisqlc -c dsn=dat_source_name -q exec_proc.sql > exec_proc.out

두번째 : 프로시져 (create_proc.sql) 내용에다 SELECT한 결과를 추출하는 로직을 삽입해야함

세지아빠(sejiappa)님이 2010-02-02 10:54에 작성한 댓글입니다.

세지아빠님 답변 감사드립니다.

 

일단 프로시져를 생성하는 sql자체를 dbisqlc로 실행하면 컴파일이 되는군요..

 

제가 여기서 궁금했던것은.. 프로시져를 호출할 때의 인수 값인데요..

세지아빠님께서 알려주신 방법은.. 인수를 하드코딩으로 call할 때 넣으셨잖아요...

그렇지만 배치 작업할 때 스케쥴러를 통해서 자동으로 인수를 받아서 넣고 싶다면 dbisqlc에서 어떻게 처리를 해야하나요?

 

call sample('20090909') 이렇게 알려주셨는데요.. 이 부분은 *.sql로 저장이 되어있고 *.sql을 dbisql로 호출을 하는거잖습니까..

그렇지만 저는 호출 할때의 날짜 인수를 특정 툴에서 자동으로 받아서 하고 싶거든요...예를 들어서 특정 툴에서 받는 날짜의 변수명이 %baseday라고 한다면

call sample(%baseday) 라고 *.sql을 만들어서 dbisqlc로 실행해야하나요 아니면

dbisqlc -c dsn=dsn명 -q sample.sql $1  이런식으로 해야하나요...

 

글쓴이님이 2010-02-02 12:17에 작성한 댓글입니다. Edit

exec_proc.sql 파일을 다음과 같이 만드세요

PARAMETER P_DAY;

call sample ('{P_DAY}');

 

 

그리고 dbisqlc를 이용하여 프로시져를 실행할 때 아래처럼 하면 됩니다

dbisqlc -c dsn=dat_source_name read -q exec_proc.sql 20100202

세지아빠(sejiappa)님이 2010-02-03 12:30에 작성한 댓글입니다.
세지아빠(sejiappa)님이 2010-02-03 14:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3995튜닝 좀 봐주세요. [2]
경아
2010-02-03
7262
3994dbisqlc 로 쿼리 실행하기!! 도와주세요!! [1]
초보
2010-02-02
11024
3993최근글 가져오기.. [1]
양은숙
2010-02-02
7853
3992프로시져 호출 할 때의 인수처리 및 컴파일 [4]
프로시져..
2010-01-31
11372
3991sam파일 추출 시 trim처리.. [2]
스페
2010-01-29
9506
3990sybase iq LOAD 옵션중.. [1]
jip
2010-01-29
9918
3989sybase 추출 시 옵션 질문입니다.. [4]
2010-01-28
8310
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다