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 1988 게시물 읽기
No. 1988
proc를통해 bcp실행중 변수값 전달방법?
작성자
sp
작성일
2007-07-22 12:49
조회수
5,956

// 영빈님께서 답변해주신 내용입니다.

create procedure test @tablename char(255)

as

begin

declare @query char(1000)

set @query = "select  * from " + @tablename

exec(@query)

end


우선 위와같은 형태의 쿼리로 실행에는 문제없이 잘 돌아갑니다.. 근대 이게 하나넘어가면 또 막히고 또막히고 그러내요 -_-;;


뷰를통해 백업을 받으려했지만.. 안되는것이 많아서 프로시저를 통해서 bcp덤프를 받으려 합니다.(정기적으로 백업이 필요한 기능입니다.)


1. 처음 실행문(start.sh)

isql -Usa -P -b -isql/${table[$cnt]}.sql -o$src/bcp_${table[$cnt]}.txt -s'^'


2. 쿼리호출 sql파일

use test

go

exec test 'tableName'

go

exit


테이블의 수만큼 2번 sql파일을 만들어서 1번을 루프를 돌면서 실행하고 있습니다.

그런대 sql파일을 하나만 만들고 해당 sql파일에 테이블명을 변수로 받게하고 싶은대.. 방법이 없을까요?

(혹은 sql파일없이 바로 프로시저로 파라메터 던져서 실행되게 할 순 없는지..)


그리고 sql문으로 백업받을경우 아래와같은 메시지가 붇어서 나옵니다. 이 메시지 출력안되게 할 수 없을까요?

(53362 rows affected)

(return status = 0)


질문하기 시작하니 끝도 없는듯 ㅜㅜ

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

그냥 bcp scripts 만들어서 받으세요


isql -Usa -P -w132 -obcp.sql <<EOF

select 'bcp db_name.'+user_name(uid)+'.'+object_name(id) +' out '+object_name(id)+'.bcp -Usa -P -c -t''||'' -e'+object_name(id)+'.err' +char(10) from sysobjects where type='U' order by user_name(uid),object_name(id)

go

EOF


해서 나온 bcp.sql을 수행하심 될것 같에요...


지저분한건 sed나 grep으로 정리 하시고요

(53362 rows affected)

이문장은 set nocount on이라고 하시면 없어집니다.

지연님이 2007-07-23 08:56에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1991char 길이가 255 까지 밖에 지원이 안되는건가요? [2]
진성호
2007-07-23
5639
1990Sybase-> Oracle 전환시 [1]
질문이요
2007-07-23
6602
1989이런 sql 쿼리가 가능한가요?? [5]
진성호
2007-07-23
6748
1988proc를통해 bcp실행중 변수값 전달방법? [1]
sp
2007-07-22
5956
1987뷰어 테이블 복구 [1]
정성환
2007-07-20
5511
1986index가 걸린 컬럼 조회 [2]
cyber1001
2007-07-19
8372
1985프로시져 질문입니다. [2]
초보자입니다
2007-07-19
6077
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다