我遇到了问题。我已经声明了一个游标,当我获取它时,我想打印一个变量(类型为nvarchar)但是对于每一行我只得到第一个字母 这是我的代码:
DECLARE @loginSoftware nvarchar
DECLARE @loginId int
DECLARE @softwareId int
DECLARE @passwordSoftware nvarchar
DECLARE @SoftwareFamily nvarchar
DECLARE @SoftwareName nvarchar
DECLARE @password nvarchar
DECLARE Get_Password cursor
for (select loginId, charly.softwareId, login, password FROM REFC_SOFTWARE_LOGIN, v_charly_HOSTS_AND_SOFTS_INFOS charly
WHERE charly.softwareId = REFC_SOFTWARE_LOGIN.softwareId
AND charly.SoftwareFamily = 'DB'
and SoftwareName in ('Oracle', 'SQL Server', 'MYSQL') )
OPEN Get_Password
FETCH NEXT FROM Get_Password INTO @loginId, @softwareId, @loginSoftware, @passwordSoftware
WHILE (@@FETCH_STATUS = 0)
BEGIN
--raiserror (@passwordSoftware, 10,1) with nowait
SET @password = @passwordSoftware
PRINT @password
FETCH NEXT FROM Get_Password INTO @loginId, @softwareId, @loginSoftware, @passwordSoftware
END
CLOSE Get_Password
DEALLOCATE Get_Password
打印整个变量值需要更改什么? 我犯了什么错误吗?
提前感谢您的帮助和时间
答案 0 :(得分:1)
让nvarchar
个变量有一个长度。如果您未声明nvarchar(20)
,则默认长度为1。
答案 1 :(得分:0)
DECLARE @loginSoftware NVARCHAR
SET @loginSoftware ='fdjafs'
PRINT @loginSoftware
DECLARE @loginSoftware NVARCHAR(2000)
SET @loginSoftware ='fdjafs'
PRINT @loginSoftware
将全部给你....所以基本上你也必须指定数据长度。
答案 2 :(得分:0)
NVARCHAR
的默认长度为1.您必须使用长度声明它。