PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2018/03/15 16:56:40
Name NCS
Subject [질문] MSSQL 프로시저 매개변수 해결! (감사합니다) (수정됨)
MSSQL이라서 한글 테이블, 한글 컬럼씁니다.
예를들어 공지사항 테이블에 제목,내용 등등 컬럼이 있고

프로시저로 @type : 분류, @word : 검색어  를 입력받았을때
1)
select * from 공지사항
where 제목 like @word
는 잘 출력 되는데

2)
select * from 공지사항
where @type like @word
는 쿼리 에러는 안 나는데 결과가 안 나오네요

대충 검색해보니 조건절 좌측에는 매개변수 쓰면 안 된다던데
매개변수를 써야 동적으로 운영 할 수 있거든요..

예를들어 화면단에서 프론트개발자가 검색분류 콤보박스에 작성자를 추가 할 수있는데
2)처럼 되어야 화면단에서 무엇을 입력받든 동적으로 처리되는데
1)처럼 하려면 일일이 if문으로 조건을 추가해줘야되서 문제가 될 수 있거든요.

즉 프론트개발자가 화면단에는 작성자라는 조건도 추가했는데 프로시저에는 작성자 like @word 라는 쿼리가 추가 안되어있으니
결과가 나올 수가 없는겁니다.

사실 프로시저 안쓰고 java DAO에서 문자열로 쏘면 되긴한데.. 보안상 소스에 쿼리 안넣고 프로시저를 활용하고싶은데
where 조건절 좌측 것도 동적으로 활용할 괜찮은 방법 혹시 없을까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
18/03/15 17:14
수정 아이콘
동적쿼리를 쓰면 될것같아요
18/03/15 17:30
수정 아이콘
(수정됨) 동적 쿼리로 하니까 되네요! (sp_executesql)
감사합니다!
마루하
18/03/15 19:23
수정 아이콘
아 근데 보안상 동적쿼리가 안좋긴 합니다.
보안상이란 단서를 본문에서 봐서 지나가다 한마디 남깁니다.
더불어 자주 사용되는 쿼리라면 성능상에도 문제가 생길거구요.
18/03/15 20:17
수정 아이콘
역시 프로시저는 성능상 안좋은가 보군요.
브라이언
18/03/15 20:41
수정 아이콘
하지만 검색조건이 많은경우 일일이 if문으로 쿼리분기 한다면 모를까... 동적쿼리외에는 답이 없죠
성능이라기보다는 프로시저의 캐싱을 활용못하는거고요
오히려 인덱스 제대로 안걸어서 생기는 성능이슈가 더 많죠
마루하
18/03/15 20:51
수정 아이콘
프로시저가 성능이 안좋다기 보단 동적쿼리를 쓰면 쿼리를 실시간으로 준비해야 해서 살짝 느려지는 이슈가 있고,
브라이언님 말씀대로 캐싱이 안되죠.
일반적으로 검색에 사용되는 컬럼은 인덱싱을 해야 서비스 가능한 수준의 쿼리 성능이 나오기 때문에 미리 정해두는 경우가 많습니다.
미리 정해진 컬럼만 검색이 되도록 한다면 동적 쿼리 없이 사용할 수 있겠죠.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
117339 [질문] 금요일 오전 8시, 오후 6시경 대치동 출,퇴근길 차 많이 막히나요? [16] 유니꽃2908 18/03/15 2908
117338 [질문] MSSQL 프로시저 매개변수 해결! (감사합니다) [6] NCS3129 18/03/15 3129
117337 [질문] Nox나 momo 앱플레이어 돌릴려면 컴부품 뭐가 좋아야하죠? [4] Twice3381 18/03/15 3381
117336 [질문] 아파트 입주 후 시스템 에어컨 설치 조언 부탁드립니다. [6] Red Key5602 18/03/15 5602
117335 [질문] 커피레이크 8600k와 8700이 체감차이가 많이 날까요? [7] esang5987 18/03/15 5987
117334 [질문] 사업기획 관련 도서 추천부탁합니다 BlueSKY--1373 18/03/15 1373
117333 [질문] 어머니의 부동산 투자에 대해서 궁금하여 질문드립니다. [20] 키무도도2502 18/03/15 2502
117332 [질문] 휴대폰 USB 3.0 관련해서 [6] 초록2196 18/03/15 2196
117331 [질문] [프로그래머] java관련(bit) 질문입니다. [4] The.Scv1819 18/03/15 1819
117330 [질문] 싫은 사람들 사이에서 버티기 [38] 삭제됨4490 18/03/15 4490
117329 [질문] 스1,스2 APM 측정 방식이 다른가요? [6] 독한혀들의전쟁2060 18/03/15 2060
117328 [질문] 철권 태그1 공략을 찾을 수가 없어요 ㅠㅠ [11] chlrkdchlrkd4832 18/03/15 4832
117327 [질문] [다이어트] 배가 고프네요... [1] Lighthouse2680 18/03/15 2680
117326 [질문] 영어회화에 도움이 될만한 보드게임 추천 부탁드려요 [22] 밐하3770 18/03/15 3770
117325 [질문] 롤챔스 개인별 지표?(수치)는 어디서 찾아보는건가요? [2] 정공법1721 18/03/15 1721
117324 [질문] [헬스]운동10개월차인데..변화가 거의 없어요ㅠ [10] 쭈운4929 18/03/15 4929
117322 [질문]  10년 공공임대 괜찮을까요? (세종/LH) [5] zzzzz2858 18/03/15 2858
117321 [질문] airbnb 예약관련 [5] 장모1939 18/03/15 1939
117320 [질문] [촌놈]서울 데이트 코스 문의드립니다 [7] 삭제됨2647 18/03/15 2647
117319 [질문] 국민은 수준에 맞는 언론을 가진다? 분야별 최고는? [12] moqq2676 18/03/15 2676
117318 [질문] 대구 놀러왔는데 중화 비빔밥 어디가 맛있나요? [9] 짱짱걸제시카3306 18/03/15 3306
117317 [질문] 요즘 길거리에서 말거는 분들 뭐하는 분들인가요? [26] Cookie7182 18/03/15 7182
117316 [질문] 도쿄 지하철역 이용 관련 패스 질문입니다 [2] riven1602 18/03/15 1602
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로