2011-07-28 2 views
7

약간의 배경 "열에 GetBytes에 잘못된 시도" SQL 서버 오류

최근 내가 그 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7218

그래서 MS 링크에서 패치를 적용하여 "SQL 서버 관리 스튜디오 2005"업그레이드, 나는 액세스 할 수 있습니다 최근에 SQL Server 2008 버전의 DB 서버가 구축되었습니다.

Oracle DB에 연결하는 2008 Db 서버에 서버 링크가 생성되었습니다. 내가 오류를 얻을

select top 10 * from [server]..DBNAME.TABLENAME 

또는

select * from [server]..DBNAME.TABLENAME 

다음과 같이 서버의 링크를 사용하여 쿼리를 실행할 때마다 이전에 나는 어떤 문제에 직면하지만 관리 스튜디오 패치를 적용한 후하지 않았다

일괄 처리를 실행하는 동안 오류가 발생했습니다. 오류 메시지 : 유효하지 않은 컬럼 colname에서 GetBytes 시도 '. GetBytes 기능은. "형 text, ntext 또는 image의 열에

을 사용하지만

select top 10 col1,col2 from [server]..DBNAME.TABLENAME 

또는

select distinct col1, col2, col3 from [server]..DBNAME.TABLENAME 

에 쿼리를 변경하는 경우는 실행 할 수 있습니다 어떤 문제도없이 괜찮아요.

저는 잘 모르겠지만 제 생각에 그것은과 관련이 있습니다.3210 ... Management Studio의 일부 설정으로 인해이 문제가 발생할 수 있습니다.

누구든지 아이디어가 있거나 이전에이 문제에 직면 해 있습니다. 도와 주실 수 있니?

EDIT : sqlcmd을 사용하여 문제 쿼리를 실행하면 정상적으로 실행됩니다.

감사합니다.

+1

을 당신이 관리 스튜디오 생각한다면, SQLCMD를 통해 위의 쿼리를 실행 해보십시오. http://msdn.microsoft.com/en-us/library/ms162773.aspx sqlcmd -S servername -d master -Q "select * from [server] .. DBNAME.TABLENAME" – billinkc

+0

@billinkc, yea 나는 이미 그것을 시도했다. 그래서 SSMS에 문제가 있다고 언급 한 것입니다. – Rahul

+0

논리적 인 대답이 SELECT * 사용을 중단하는 것 같습니다? –

답변

12

SQL 2008 관리 스튜디오에서 SQL 2008 서버를 사용하고 DATE 데이터 유형이 포함 된 테이블을 쿼리 할 때 그 오류가 발생했습니다.

기본적으로 SSMS는 다시 열 데이터 형식 중 하나를 이해하지 못합니다. SELECT *는 작동하지 않지만 SELECT col1, col2, col3은 작동하지 않습니다. 테이블에 몇 개의 열이 있습니까? Management Studio가 혼란 스러울 때까지 선택 열을 열로 확장하십시오. 그런 다음 select 절에서 CAST를 사용하여 Management Studio에서 이해할 수있는 항목으로 변환 할 수 있습니다.

아마 여기서 발생하는 것은 열 중 하나가 SQL 2008에서 DATE, TIME, DATETIME2 또는 다른 새로운 SQL 2008 데이터 형식 중 하나로 반환된다는 것입니다. Management Studio 2005는 SQL 2008 서버에 연결할 수 있지만 새 데이터 형식을 이해하지 못하고 표시 할 수 없습니다.

Management Studio의 제한 사항입니다.

+0

나는 downvote하지 않을 것이다. 그러나 이것은 문제가 아니다 ...'sqlcmd'를 사용하여 실행하면 같은 에러가 발생한다. 에러가 발생하지 않는다. 만약 당신이 무슨 소리를했다면 나는 sqlcmd를 사용하여 오류가 발생했을 것입니다 ... 맞습니까? – Rahul

+2

아니요.이 문제는 Management Studio 문제입니다. 어떤 형태의 쿼리 (SQLCMD와 같은)에서는 일반적이지 않습니다. Management Studio는 특히 열을 표시하는 방법을 알지 못합니다. – GilaMonster

0

@GilaMonster가 언급했듯이 그것이 문제의 원인입니다.내가

sqlcmd -S <servername> -U login -P password -d dbname -Q "select top 10 * from [server]..DBNAME.TABLENAME" 

오류없이 잘 실행처럼 sqlcmd를 사용하여 쿼리를 실행하면 같은

다시, 문제는 SSMS와 andnot 일반적이다.

해결 방법 :이 문제를 해결할 수

UNISTALL SSMS 2005 설치 SQL Server 2008 R2 Management Studio.

0

해결책을 찾았습니다. (날짜 필드가 FIELD3이라고 가정)이 방법으로 DATE 필드를 포함하는 SQL2008 테이블을 쿼리하여보십시오 :

select field1, field2, convert(datetime,field3) from tablename