Programing

"프로시 저는 'ntext / nchar / nvarchar'유형의 '@statement'매개 변수를 예상합니다."라는 메시지가 표시되는 이유는 무엇입니까?

crosscheck 2020. 9. 9. 07:32
반응형

"프로시 저는 'ntext / nchar / nvarchar'유형의 '@statement'매개 변수를 예상합니다."라는 메시지가 표시되는 이유는 무엇입니까? sp_executesql을 사용하려고 할 때?


이 오류가 발생하는 이유

Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.

sp_executesql을 사용하려고 할 때?


NVARCHAR이 필요할 때 VARCHAR 문으로 sp_executesql을 호출하는 것처럼 들립니다.

예를 들어 @SQL이 NVARCHAR이어야하므로 오류가 발생합니다.

DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

그래서:

DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

해결책은 he 유형과 SQL 문자열 앞에 N을 두어 2 바이트 문자열임을 나타내는 것입니다.

DECLARE @SQL NVARCHAR(100) 
SET @SQL = N'SELECT TOP 1 * FROM sys.tables' 
EXECUTE sp_executesql @SQL

참고 URL : https://stackoverflow.com/questions/2743890/why-do-i-get-procedure-expects-parameter-statement-of-type-ntext-nchar-nvar

반응형