mssql - 문장에서 table name만 갖고오기 0 3 1,611

by 와일드키드 [SQLServer] [2023.02.07 17:15:17]


안녕하세요

아래의 컬럼 값에서 table이름과 exec로 시작하는 것만 추출하고 싶습니다.

프로시저나 function은 그대로 갖고오고요...가능할까요? 

textdata (3개의 row)

-------------------

SELECT COUNT(*) AS a   FROM dbo.A_DOOR_PACKING_WORK_LIST (''''   ,'''' ,'''')  WHERE id=73752
SELECT ISNULL(SUM (CASE WHEN Completed = 1  THEN 2  WHEN Completed = 0 AND PrintedOn IS NOT NULL  THEN 1  ELSE 0  END ),0) AS CompletedRows   FROM A_SEARCH_LIST   (@WBSElement000000     ,@
exec B_ORDERERLIST

 

==>

A_DOOR_PACKING_WORK_LIST

A_SEARCH_LIST

exec B_ORDERERLIST

 

답변주시는 분들께 진심으로 감사드립니다.

 

by 마농 [2023.02.07 18:00:02]

http://gurubee.net/article/50485  <-- Oracle 참고용.


by 와일드키드 [2023.02.08 13:31:01]

마농님 감사합니다.  

mssql용 regexp_substr, regexp_replace용 생성후(인터넷에서 찾음)

또 이것저것 수정해서 해보려했는데 구문을 이해못해서 그런지 

MSSQL용으로 해보려니 오류 투성이네요...죄송하지만 mssql용으로 변경 부탁드려도 될까요? 

정말 죄송합니다. 밥상을 차려줘도 못떠먹어서요...


by 마농 [2023.02.08 15:08:14]

단순하게는 FROM 절 바로 뒤에 오는 부분을 잘라서 가능할 수 있습니다.
SQL 구문이 단순한 구문만 들어온다는 가정하에서만 가능한 일이죠.
조인 도 들어가고, 서브쿼리도 들어가는 경우라면 어렵습니다.
댓글 링크 확인해 보시면 Oracle 도 완성형이 아니라는 것을 알 수 있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입