HATA MESAJI:
"Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'."
AÇIKLAMA:
sp_executesql sistem SP' si ile bir değişkendeki komutu çalıştırdığınızda bu hata mesajı ile karşılaşabilirsiniz.
Örnek:
DECLARE @komut VARCHAR(150)
SET @komut = 'SELECT * FROM TABLOM'
EXEC sp_executesql @komut
veya hiç değişken kullanmadan doğrudan aşağıdaki gibi bir komut çalıştırırsanız da aynı hata mesajıyla karşılaşırsınız:
EXEC sp_executesql 'SELECT * FROM TABLOM'
ÇÖZÜM:
Aslında hatanın nedeni, hata mesajının içerisinde de açıkça yazıyor. sp_executesql sistem SP' si için kullanacağınız @statement parametresi UNICODE olmalıdır. Bu @statement parametresi ister ilk örnekteki gibi bir değişken kullanılarak belirtilmiş olsun, isterse ikinci örnekteki gibi statik bir şekilde yazılmış olsun.
Yukarıdaki örneklerin doğruları ise şu şekildedir:
DECLARE @komut NVARCHAR(150)
SET @komut = N'SELECT * FROM TABLOM'
EXEC sp_executesql @komut
vve
EXEC sp_executesql N'SELECT * FROM TABLOM'
Hiç yorum yok:
Yorum Gönder