현재 SQL Server 쿼리 보고서를 구문 분석하여 나중에 사용하기 위해 저장하는 데이터를 파싱하는 C# 프로그램을 작성 중입니다. 지금까지 내가 분석했던 쿼리가 매우 간단하고,하지만 난 그냥이 항목이 포함 된 테스트 파일 접수 : 기괴한 형식의 항목으로 SQL 쿼리 보고서 구문 분석
Client Contact Client Email
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Primary: Nelli Quiroga
, [email protected]
Secondary: Zully Aranda, [email protected]
[email protected]|[email protected]
이 (서식을 용서하세요 - 그건 정확히 어떻게 쿼리 출력한다.)
주 클라이언트와 보조 클라이언트의 이름과 전자 메일 주소를 모두 가져올 수 있어야합니다.이 주소는 List<Tuple<string, string>>
에 저장됩니다. 지금까지, 나는 그것을 효율적으로하는 해결책을 고안하지 못했습니다. 내 최고의 추측은 어떻게 든 Regex를 사용해야 할 것이지만 Regex가 C#에서 어떻게 작동하는지 익숙하지 않고 정규식 기술이 매우 녹슬어 보인다.
몇 가지 추가 정보 :
- 나는 데이터베이스에 액세스 할 수없는, 그래서 서식을 변경할 수 없습니다.
- 쿼리 결과에 둘 이상의 항목이 포함될 수 있는지 여부는 알 수 없습니다. 이 때문에 파서가이 항목 중 하나 이상을 처리하도록합니다. 모든 모든 입력을 감상 할 수있다
User_Name Group_Name -------------------------------------------------- -------------------------------------------------- msteffl NULL spurcell Admin wgervais Admin djames Admin loaduser Admin mbreu Admin wgervais ComplianceContractors wgervais ComplianceOfficers sgregory ComplianceOfficers ntabares ComplianceOfficers lduffaut ComplianceOfficers pdeneree ComplianceOfficers serickson ComplianceOfficers mbreu ComplianceOfficers jreinhardt ComplianceOfficers jromoser ComplianceOfficers ebell ComplianceOfficers bkeogh ComplianceOfficers cbarnett ComplianceOfficers cbarnett Users bkeogh Users ebell Users djames Users jromoser Users jreinhardt Users mbreu Users serickson Users pdeneree Users lduffaut Users ntabares Users sgregory Users spurcell Users wgervais Users
:
이 항목 (들)은 다행히도 모든과 같이 형식이 다른 테이블에 쿼리를 포함하는 쿼리 보고서의 일부가 될 것입니다.
Management Studio에서 "파일 출력"을 확인하거나'sqlcmd'를 호출 할 때 나타나는 "보고서"와 비슷합니다. 이 경우 더 나은 형식화 된 출력을 얻기 위해 쿼리를 수정할 필요가 없으며 출력을 처리하는 더 좋은 방법입니다. "액세스 권한 없음"이라고 말하면서 소스로 돌아가서 Management Studio에서 모눈 결과를 복사하여 붙여 넣기를 시도해보고 Excel에 붙여 넣을 수 있는지 물어보십시오. 여분의 기술적 정교함. –
강조 :이 형식은 기계에 의한 일관된 구문 분석이 가능하도록 설계되지 않았습니다 *. 당신이 고안 한 모든 구문 분석은 데이터에서 개행 문자를 창의적으로 적용함으로써 손상 될 수 있습니다.이 형식은 탈출을 시도하지 않습니다. 이 *가 Management Studio에서 출력되는 경우 데이터가 충분할 경우 데이터를 자릅니다. 효과적으로 열을 행에서 분리하는 것은 불가능합니다. 추측의 종류에 따라 처리가 불안정 해 지므로 쓸모가 없습니다. –
예, 출력 파일입니다. 내가 생각할 수있는 다른 파일에 데이터를 붙여 넣으라는 질문에 가장 큰 문제는 그것이 바람직 할 지 모른다는 것입니다. 쿼리 결과를 스프레드 시트에 복사하여 붙여 넣는 추가 단계는 너무 지루하고 비효율적 인 것으로 간주 될 수 있지만 관계없이 여전히 질문 할 수 있습니다. 가능하다면, 나는 (그리고 그들도) 이것을 알아내는 것에 감사 할 것이다. – MrM21632