isql -U계정 -P패스워드 -D디비네임 -S서버네임 -p << EOF
select 1
go
EOF
이런식으로 쿼리 1출력 받는 방법 말고
EOF 구분자 없이 한번에 쿼리 내용 받을 수 있는게 없을까요?
popen이든 system함수를 이용해서 쿼리 결과를 뽑아내야 하는 상황입니다. 조언 부탁드려요..
isql -U계정 -P패스워드 -D디비네임 -S서버네임 -p << EOF >> file.out
isql -U계정 -P패스워드 -D디비네임 -S서버네임 -p << EOF "select 1" >> file.out
isql -U계정 -P패스워드 -D디비네임 -S서버네임 -p << EOF "select 1" EOF >> file.out
2방식 다 해봤는데 안 돼요.. 제가 뭘 잘못했나요?
그리고 file.out 파일로 받아야 하나요..?
쉘스크립트로 이해했네요
isql -U계정 -P패스워드 -D디비네임 -S서버네임 -p -o주실파일명 << EOF
이렇게 하세요
isql -U계정 -P패스워드 -D디비네임 -S서버네임 -p << EOF >> 파일명
둘다되요
음.. 제가 전달력이 약했나 보네요..
첫번째랑 2번째 저런 방법을 이용하면 system 함수 또는 popen함수에서 사용이 불가능하잖아요..
저는 system 함수, popen함수를 이용하여 쿼리 결과를 받고 싶어서 글을 올렸어요..
죄송해요 뭐하시려는지 이해력이 부족해서;;
그냥 수행하실 sql은 스크립트파일로 만드시고
사용하시는 함수에다 sh 파일명
파일안에내용은 원래 하시려는대로 하시면될거같은데
이것도아닌가요
system(sh filename.sh)
filename.sh
내용은
그대루요
쉘 스크립트 이용하면 편하긴하죠.. 하지만 쉘 스크립트 파일이 항상 필요해서.. 바로 쿼리로 뽑아내진 못하는거군요 .. 감사합니다. 방법이 따로 없나 보네요..
1. isql 을 사용하셨으니 IQ 가 아닌 ASE 라고 가정하고...
2. POPEN 이나 system 함수를 이용해서 쿼리 결과를 뽑는 다고 하셨으니,
C 를 사용하는 환경(?) 일것이라 가정...
popen ("isql -Usa -PXXX -DYYY -SZZZ -isql",r) 이런 방식을
생각하시는 것 같습니다만..
보통 컴파일 언어(C,java 등)에서 일반적으로 DB접속 라이브러리를 사용해서
쿼리 결과를 출력하지, 이미 만들어진 DB client를 호출하는 경우는 드물죠.
더군다나, 스크립트 언어용 DB 드라이버들이 나온 상태라 이렇게 popen이나 system을 사용하는 경우는 드문거 같습니다.
굳이 C를 고집하셔야 하는 상황이라면...
ESQLC를 배워보시는게 좋을 것 같습니다.
BCP (bulk copy ) 유틸을 검토해 보는 것도 하나의 방법일 것 같군요.