簡體   English   中英

不允許從數據類型 varchar 到 varbinary 的隱式轉換。 (SQL)

[英]Implicit conversion from data type varchar to varbinary is not allowed. (SQL)

錯誤:

不允許從數據類型 varchar 到 varbinary 的隱式轉換。 使用 CONVERT 函數運行此查詢。

任何問題? 我是 SQL Server 新手

USE schemas
GO

CREATE PROCEDURE Table
    @LineaNegocioId INT,  --null
    @PaisId INT, -- required
    @AreaId INT, --required
    @Nombre VARCHAR(100), --required
    @Descripcion VARCHAR(100), --required 
    @fechaCreacion DATETIME, --required
    @fechaUltimaModificacion DATETIME --null
AS 
BEGIN
    SET NOCOUNT ON

    INSERT INTO Table (LineaNegocioId, PaisId, AreaId, Nombre, Descripcion, fechaCreacion, fechaUltimaModificacion)
    VALUES (@LineaNegocioId, @PaisId, @AreaId, @Nombre, @Descripcion, @fechaCreacion, @fechaUltimaModificacion)

    SET NOCOUNT OFF
END

字段NombreDescripcionvarbinary ,您必須為您的insert子句顯式convert這些輸入。

它看起來像這樣。

VALUES (... ,CONVERT(varbinary, [@Nombre or @Descripcion]) ,...)

drop procedure if exists sp_CrearUsuario
    go
    create procedure sp_CrearUsuario
    -- Parametros de entrada
        @_nom nvarchar(50),
        @pass varchar(max),
        @_correo nvarchar(50),
        @_cod Char(10),
    -- Parametros de salida
        @_mensaje varchar(100) out
    as
        /*declare @pass varbinary(max)*/
    begin   
            set @pass =(ENCRYPTBYPASSPHRASE('contraseñaventas',@pass));
            insert into Usuario values(@_nom, Convert(varbinary(max),@pass), @_correo, @_cod) 
            set @_mensaje = 'Registro insertado'
            select * from Usuario 
    end
    go

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM