2016-07-11 5 views
0

나는 이것을 아주 깊이 읽었으며이를 수행하는 방법을 고민하고있다. 기본적으로SQL 항상 셀에 있던 알려진 구문 사이에 결과를 표시하는 방법

, 내가 MEMBER_TYPE로 식별 한 열을 가지고, 어떤이 칼럼에 표시하면 다음과 같은 연결 문자열입니다

제공 = SQLOLEDB.1; 사용자 ID = 사용자, 암호 = 기본 풀 ID = TRUE/FALSE, 최소 풀 크기 = 5, 최대 풀 크기 = x

기본적으로 모든 연결 문자열에서 원하는 유일한 데이터는 다음과 같습니다. Member_Type 열의 결과는 "Initial Catalog ="문구 이후, "Persist Security"이전의 모든 문구로 모든 구문에 나타나며 변수 및 중요한 정보는 초기 카탈로그 d입니다. 반환 될 데이터베이스 이름.

사용자 ID, 비밀번호 및 데이터 소스는 모두 수백 개의 다른 사이트에서 달라 지므로 문자 수를 제대로 활용하지 못할 수도 있습니다.

누군가가 Catalog =와; Persist 사이에 나타나는 결과를 얻는 방법을 말해 줄 수 있습니까?

감사합니다.

+0

이궁을. 왜 이런 db 암호를 저장하고 있습니까? 보안이 부족합니다. –

+0

[아이템 x에 액세스 할 수 있도록 문자열을 어떻게 분할합니까?] (http://stackoverflow.com/questions/2647/how-do-i-split-a-string-so-i-can- access-item-x) –

+0

그래, 암호 문제로 시작하게하지 마라. 그건 다른 대화 다. –

답변

0

이 당신이 필요로하는 무엇을 얻어야한다 :

DECLARE @variable VARCHAR(255) = 'Provider=SQLOLEDB.1;User ID=User;Password=Password;Data Source=Hostname;Initial Catalog=DESIRED_RESULT;Persist Security Info=TRUE/FALSE;Min Pool Size=5;Max Pool Size=x' 

SELECT SUBSTRING(STUFF(@variable ,1 ,CHARINDEX('Catalog=' ,@variable) + 7 ,'') ,0 , 
       CHARINDEX(';Persist' ,STUFF(@variable ,1 ,CHARINDEX('Catalog=' ,@variable) + 7 ,''))) 

결과 : DESIRED_RESULT