none
ERROR CON TABLE VALUED PARAMETER RRS feed

  • Pregunta

  • saludos, tengo este error como puedo corregirlo 

    Mensaje 137, nivel 16, estado 1, procedimiento FN_CLIMATIZACION_EQUIPO, línea 127 [línea de inicio de lote 7]
    Must declare the scalar variable "@ExcelTVP".

    Este es mi código

    ALTER FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    @ExcelTVP  TVP READONLY
    
    )......


    FROM
    [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)

    y la función 

    [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO]  

    espera recibir un parámetro de ese tipo


    lunes, 28 de noviembre de 2016 13:38

Respuestas

  • Ya empiezan a votarse entre ustedes asi que mejor cierro el hilo, la solución fue crearme otra base de datos y ejecutar las queries que ya tenia y todo corrio perfecto , me queda el misterio de saber porque no funcionaron en la otra BD,
    lunes, 28 de noviembre de 2016 20:46

Todas las respuestas

  • Pudieras postear el codigo completo?

    - creacion del tipo de dato de usuario

    - funcion

    - variable tipo creado en el primer punto

    - llamada a la funcion


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 13:41
  • TIPO CREADO

    CREATE TYPE [dbo].[TVP] AS TABLE(
    	[ID] [int] NULL,
    	[HTS Code] [varchar](250) NULL,
    	[HTS Code Description] [varchar](250) NULL,
    	[Custom] [varchar](250) NULL,
    	[DUA] [varchar](250) NULL,
    	[Date] [datetime] NULL,
    	[ETA] [datetime] NULL,
    	[Manifiesto] [varchar](100) NULL,
    	[Tax ID] [bigint] NULL,
    	[Importer] [varchar](250) NULL,
    	[Exporter] [varchar](250) NULL,
    	[Gross kg] [decimal](18, 3) NULL,
    	[Net kg] [decimal](18, 3) NULL,
    	[Qty 1] [decimal](18, 3) NULL,
    	[Unit 1] [varchar](250) NULL,
    	[Qty 2] [decimal](18, 3) NULL,
    	[Unit 2] [varchar](250) NULL,
    	[U$ FOB Tot] [decimal](18, 3) NULL,
    	[U$ Freight Tot] [decimal](18, 3) NULL,
    	[U$ CFR Tot] [decimal](18, 3) NULL,
    	[U$ Insurance Tot] [decimal](18, 3) NULL,
    	[U$ CIF Tot] [decimal](18, 3) NULL,
    	[U$ FOB Unit 1] [decimal](18, 3) NULL,
    	[U$ CFR Unit 1] [decimal](18, 3) NULL,
    	[U$ CIF Unit 1] [decimal](18, 3) NULL,
    	[U$ (CIF + Taxes) Unit 1] [decimal](18, 3) NULL,
    	[U$ FOB Unit 2] [decimal](18, 3) NULL,
    	[U$ CFR Unit 2] [decimal](18, 3) NULL,
    	[U$ CIF Unit 2] [decimal](18, 3) NULL,
    	[U$ (CIF + Taxes) Unit 2] [decimal](18, 3) NULL,
    	[Origin Country] [varchar](250) NULL,
    	[Acquisition Country] [varchar](250) NULL,
    	[Loading Port] [varchar](250) NULL,
    	[Via] [varchar](250) NULL,
    	[Transport] [varchar](250) NULL,
    	[Custom Agent] [varchar](250) NULL,
    	[Bank] [varchar](250) NULL,
    	[Warehouse] [varchar](250) NULL,
    	[Status] [varchar](250) NULL,
    	[Commercial Description] [varchar](max) NULL,
    	[Ad Valorem] [decimal](18, 3) NULL,
    	[IGV] [decimal](18, 3) NULL,
    	[ISC] [decimal](18, 3) NULL,
    	[IPM] [decimal](18, 3) NULL,
    	[Specific Duties] [decimal](18, 3) NULL,
    	[SurTax] [decimal](18, 3) NULL,
    	[AntiDumping] [decimal](18, 3) NULL
    )
    GO

    FUNCION DE EQUIPO

    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    @ExcelTVP  TVP READONLY   
    )
    RETURNS TABLE
    AS
    RETURN
    SELECT EQUIPO=CASE....
    
    
    
    FROM [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)

    FUNCION SUBCLASE

    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO]
    (
    @ExcelTVP  TVP READONLY   
    )
    RETURNS TABLE
    AS
    RETURN
    SELECT * FROM
    (
    
    SELECT A.*,FECHA=A.[date],MES=Month(A.[date]), 
    [SUB-CLASE]=CASE....
    
    
    FROM  @ExcelTVP A
    )D

    lunes, 28 de noviembre de 2016 13:59
  • Chequea si estas siguiendo los pasos de este script.

    CREATE TYPE dbo.tvp AS TABLE (
    id int NOT NULL PRIMARY KEY
    );
    GO
    CREATE FUNCTION dbo.ufn_test_tvp (
    @p1 dbo.tvp READONLY
    )
    RETURNs table
    AS
    RETURN (
    SELECT A.id FROM @p1 AS A
    )
    GO
    DECLARE @t tvp;
    
    INSERT INTO @t (id)
    VALUES (1), (2), (3);
    
    SELECT *
    FROM dbo.ufn_test_tvp(@t) AS T;
    GO
    DROP FUNCTION dbo.ufn_test_tvp;
    GO
    DROP TYPE dbo.tvp;
    GO


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 14:12
  • Hola lo que no hago es declarar el tipo @tipo e insertar datos, porque viene como un parametro desde la otra funcion

    esto si me funciona

    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    
    @FechInicio datetime,@FechaFin datetime,@EFA VARCHAR(20)
    )
    
    ....
    
    
    FROM
    [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@FechInicio ,@FechaFin ,@EFA )

    lunes, 28 de noviembre de 2016 14:19
  • Si no pones un ejemplo completo que podamos probar de nuestro lado entonces sera dificil identificar donde esta el error.

    Aca te dejo un ejemplo de una funcion con TVP pasando el parametro a otra funcion.

    CREATE TYPE dbo.tvp AS TABLE (
    id int NOT NULL PRIMARY KEY
    );
    GO
    CREATE FUNCTION dbo.ufn_pares_tvp (
    @p1 dbo.tvp READONLY
    )
    RETURNs table
    AS
    RETURN (
    SELECT id 
    FROM @p1
    WHERE id % 2 = 0
    )
    GO
    CREATE FUNCTION dbo.ufn_test_tvp (
    @p1 dbo.tvp READONLY
    )
    RETURNs table
    AS
    RETURN (
    SELECT id * 10 AS new_id
    FROM dbo.ufn_pares_tvp(@p1)
    )
    GO
    DECLARE @t tvp;
    
    INSERT INTO @t (id)
    VALUES (1), (2), (3), (4), (5);
    
    SELECT *
    FROM @t;
    
    SELECT *
    FROM dbo.ufn_pares_tvp(@t) AS T;
    
    SELECT *
    FROM dbo.ufn_test_tvp(@t) AS T;
    GO
    DROP FUNCTION dbo.ufn_test_tvp,dbo.ufn_pares_tvp;
    GO
    DROP TYPE dbo.tvp;
    GO


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 15:19
  • ya pase un ejemplo completo, que mas necesitan,
    lunes, 28 de noviembre de 2016 15:23
  • Probastes declarando una variable tipo TVP, insertar valores y llamar estas funciones pasando la variable como parametro?

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 15:34
  • Probastes declarando una variable tipo TVP, insertar valores y llamar estas funciones pasando la variable como parametro?

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    En donde puedo declarar esta variable A QUE ALTURA

    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO] ( @ETVP TVP_CLIMATIZACION READONLY ) RETURNS TABLE AS RETURN SELECT *, ...

    FROM [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)



    lunes, 28 de noviembre de 2016 15:39
  • Trata primero en SSMS y crea un script como el que te pase.

    CREATE TYPE [dbo].[TVP] AS TABLE(
    	[ID] [int] NULL,
    	[HTS Code] [varchar](250) NULL,
    	[HTS Code Description] [varchar](250) NULL,
    	[Custom] [varchar](250) NULL,
    	[DUA] [varchar](250) NULL,
    	[Date] [datetime] NULL,
    	[ETA] [datetime] NULL,
    	[Manifiesto] [varchar](100) NULL,
    	[Tax ID] [bigint] NULL,
    	[Importer] [varchar](250) NULL,
    	[Exporter] [varchar](250) NULL,
    	[Gross kg] [decimal](18, 3) NULL,
    	[Net kg] [decimal](18, 3) NULL,
    	[Qty 1] [decimal](18, 3) NULL,
    	[Unit 1] [varchar](250) NULL,
    	[Qty 2] [decimal](18, 3) NULL,
    	[Unit 2] [varchar](250) NULL,
    	[U$ FOB Tot] [decimal](18, 3) NULL,
    	[U$ Freight Tot] [decimal](18, 3) NULL,
    	[U$ CFR Tot] [decimal](18, 3) NULL,
    	[U$ Insurance Tot] [decimal](18, 3) NULL,
    	[U$ CIF Tot] [decimal](18, 3) NULL,
    	[U$ FOB Unit 1] [decimal](18, 3) NULL,
    	[U$ CFR Unit 1] [decimal](18, 3) NULL,
    	[U$ CIF Unit 1] [decimal](18, 3) NULL,
    	[U$ (CIF + Taxes) Unit 1] [decimal](18, 3) NULL,
    	[U$ FOB Unit 2] [decimal](18, 3) NULL,
    	[U$ CFR Unit 2] [decimal](18, 3) NULL,
    	[U$ CIF Unit 2] [decimal](18, 3) NULL,
    	[U$ (CIF + Taxes) Unit 2] [decimal](18, 3) NULL,
    	[Origin Country] [varchar](250) NULL,
    	[Acquisition Country] [varchar](250) NULL,
    	[Loading Port] [varchar](250) NULL,
    	[Via] [varchar](250) NULL,
    	[Transport] [varchar](250) NULL,
    	[Custom Agent] [varchar](250) NULL,
    	[Bank] [varchar](250) NULL,
    	[Warehouse] [varchar](250) NULL,
    	[Status] [varchar](250) NULL,
    	[Commercial Description] [varchar](max) NULL,
    	[Ad Valorem] [decimal](18, 3) NULL,
    	[IGV] [decimal](18, 3) NULL,
    	[ISC] [decimal](18, 3) NULL,
    	[IPM] [decimal](18, 3) NULL,
    	[Specific Duties] [decimal](18, 3) NULL,
    	[SurTax] [decimal](18, 3) NULL,
    	[AntiDumping] [decimal](18, 3) NULL
    )
    GO
    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO]
    (
    @ExcelTVP  TVP READONLY   
    )
    RETURNS TABLE
    AS
    RETURN (
    SELECT *
    FROM  @ExcelTVP
    WHERE Status = 'ready'
    )
    GO
    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    @ExcelTVP  TVP READONLY   
    )
    RETURNS TABLE
    AS
    RETURN (
    SELECT *
    FROM [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)
    )
    GO
    
    DECLARE @T dbo.TVP;
    
    INSERT INTO @T
            (
             ID,
             [HTS Code],
             [HTS Code Description],
             Custom,
             DUA,
             Date,
             ETA,
             Manifiesto,
             [Tax ID],
             Importer,
             Exporter,
             [Gross kg],
             [Net kg],
             [Qty 1],
             [Unit 1],
             [Qty 2],
             [Unit 2],
             [U$ FOB Tot],
             [U$ Freight Tot],
             [U$ CFR Tot],
             [U$ Insurance Tot],
             [U$ CIF Tot],
             [U$ FOB Unit 1],
             [U$ CFR Unit 1],
             [U$ CIF Unit 1],
             [U$ (CIF + Taxes) Unit 1],
             [U$ FOB Unit 2],
             [U$ CFR Unit 2],
             [U$ CIF Unit 2],
             [U$ (CIF + Taxes) Unit 2],
             [Origin Country],
             [Acquisition Country],
             [Loading Port],
             Via,
             Transport,
             [Custom Agent],
             Bank,
             Warehouse,
             Status,
             [Commercial Description],
             [Ad Valorem],
             IGV,
             ISC,
             IPM,
             [Specific Duties],
             SurTax,
             AntiDumping
            )
    VALUES
            (
             1, -- ID - int
             '', -- HTS Code - varchar(250)
             '', -- HTS Code Description - varchar(250)
             '', -- Custom - varchar(250)
             '', -- DUA - varchar(250)
             GETDATE(), -- Date - datetime
             GETDATE(), -- ETA - datetime
             '', -- Manifiesto - varchar(100)
             0, -- Tax ID - bigint
             '', -- Importer - varchar(250)
             '', -- Exporter - varchar(250)
             NULL, -- Gross kg - decimal
             NULL, -- Net kg - decimal
             NULL, -- Qty 1 - decimal
             '', -- Unit 1 - varchar(250)
             NULL, -- Qty 2 - decimal
             '', -- Unit 2 - varchar(250)
             NULL, -- U$ FOB Tot - decimal
             NULL, -- U$ Freight Tot - decimal
             NULL, -- U$ CFR Tot - decimal
             NULL, -- U$ Insurance Tot - decimal
             NULL, -- U$ CIF Tot - decimal
             NULL, -- U$ FOB Unit 1 - decimal
             NULL, -- U$ CFR Unit 1 - decimal
             NULL, -- U$ CIF Unit 1 - decimal
             NULL, -- U$ (CIF + Taxes) Unit 1 - decimal
             NULL, -- U$ FOB Unit 2 - decimal
             NULL, -- U$ CFR Unit 2 - decimal
             NULL, -- U$ CIF Unit 2 - decimal
             NULL, -- U$ (CIF + Taxes) Unit 2 - decimal
             '', -- Origin Country - varchar(250)
             '', -- Acquisition Country - varchar(250)
             '', -- Loading Port - varchar(250)
             '', -- Via - varchar(250)
             '', -- Transport - varchar(250)
             '', -- Custom Agent - varchar(250)
             '', -- Bank - varchar(250)
             '', -- Warehouse - varchar(250)
             'ready', -- Status - varchar(250)
             '', -- Commercial Description - varchar(max)
             NULL, -- Ad Valorem - decimal
             NULL, -- IGV - decimal
             NULL, -- ISC - decimal
             NULL, -- IPM - decimal
             NULL, -- Specific Duties - decimal
             NULL, -- SurTax - decimal
             NULL  -- AntiDumping - decimal
            ),
    	(
             2, -- ID - int
             '', -- HTS Code - varchar(250)
             '', -- HTS Code Description - varchar(250)
             '', -- Custom - varchar(250)
             '', -- DUA - varchar(250)
             GETDATE(), -- Date - datetime
             GETDATE(), -- ETA - datetime
             '', -- Manifiesto - varchar(100)
             0, -- Tax ID - bigint
             '', -- Importer - varchar(250)
             '', -- Exporter - varchar(250)
             NULL, -- Gross kg - decimal
             NULL, -- Net kg - decimal
             NULL, -- Qty 1 - decimal
             '', -- Unit 1 - varchar(250)
             NULL, -- Qty 2 - decimal
             '', -- Unit 2 - varchar(250)
             NULL, -- U$ FOB Tot - decimal
             NULL, -- U$ Freight Tot - decimal
             NULL, -- U$ CFR Tot - decimal
             NULL, -- U$ Insurance Tot - decimal
             NULL, -- U$ CIF Tot - decimal
             NULL, -- U$ FOB Unit 1 - decimal
             NULL, -- U$ CFR Unit 1 - decimal
             NULL, -- U$ CIF Unit 1 - decimal
             NULL, -- U$ (CIF + Taxes) Unit 1 - decimal
             NULL, -- U$ FOB Unit 2 - decimal
             NULL, -- U$ CFR Unit 2 - decimal
             NULL, -- U$ CIF Unit 2 - decimal
             NULL, -- U$ (CIF + Taxes) Unit 2 - decimal
             '', -- Origin Country - varchar(250)
             '', -- Acquisition Country - varchar(250)
             '', -- Loading Port - varchar(250)
             '', -- Via - varchar(250)
             '', -- Transport - varchar(250)
             '', -- Custom Agent - varchar(250)
             '', -- Bank - varchar(250)
             '', -- Warehouse - varchar(250)
             'not ready', -- Status - varchar(250)
             '', -- Commercial Description - varchar(max)
             NULL, -- Ad Valorem - decimal
             NULL, -- IGV - decimal
             NULL, -- ISC - decimal
             NULL, -- IPM - decimal
             NULL, -- Specific Duties - decimal
             NULL, -- SurTax - decimal
             NULL  -- AntiDumping - decimal
            );
    
    SELECT *
    FROM @T;
    
    SELECT *
    FROM [dbo].[FN_CLIMATIZACION_EQUIPO](@T) AS T;
    GO
    --DROP FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO], [dbo].[FN_CLIMATIZACION_EQUIPO];
    --DROP TYPE dbo.TVP
    GO


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas



    • Editado HunchbackMVP lunes, 28 de noviembre de 2016 16:08
    • Propuesto como respuesta Edu Martinez lunes, 28 de noviembre de 2016 17:39
    lunes, 28 de noviembre de 2016 15:49
  • AHI ESTA EL SCRIPT AHO DONDE METO UNA VARIABLE

    CREATE FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    @ETVP  TVP_CLIMATIZACION READONLY
    
    )
    RETURNS TABLE
    AS
    RETURN
    SELECT *, ...
    FROM [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)

    lunes, 28 de noviembre de 2016 15:50
  • Chequea el post anterior. Ahi te puse un ejemplo completo con lo que nos has proporcionado.

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 15:57
  • Chequea el post anterior. Ahi te puse un ejemplo completo con lo que nos has proporcionado.

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    SI ,PERO ESTA DISTINTO TU DECLARAS Y LLENAS LA VARIABLE FUERA DE LA FUNCION , ESO NO ME AYUDA
    lunes, 28 de noviembre de 2016 16:01
  • Entonces como deseas llenar la variable, desde un procedimiento almacenado o desde una aplicacion de usuario?

    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 16:09
  • Esto es lo qu e no me sale , lo he puesto igual 

    y nada

    ALTER FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    @ExcelTVP  TVP READONLY   
    )
    RETURNS TABLE
    AS
    RETURN (
    SELECT *
    FROM [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)
    )
    GO

    lunes, 28 de noviembre de 2016 16:14
  • esto no corre, el error ya dicho 

    Mensaje 137, nivel 16, estado 1, procedimiento FN_CLIMATIZACION_EQUIPO, línea 125 [línea de inicio de lote 7]
    Must declare the scalar variable "@ExcelTVP".
    ALTER FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO]
    (
    @ExcelTVP  TVP READONLY
    --@FechInicio datetime,@FechaFin datetime,@EFA VARCHAR(20)
    )
    
    RETURNS TABLE
    AS
    RETURN
    SELECT *, 
    
    EQUIPO=CASE                                      THEN 'EVAPORADORA'
    WHEN   [Commercial Description]  LIKE '%CHILLER%'                        THEN 'CHILLER'               --01.SI(CONTAR.SI([@CommercialDescription];"*CHILLER*");"CHILLER";
    WHEN   [Commercial Description]  LIKE '%WINDO%'                          THEN 'COMPLETO'              --02.SI(CONTAR.SI([@CommercialDescription];"*WINDO*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%VENTANA%'                        THEN 'COMPLETO'              --03.SI(CONTAR.SI([@CommercialDescription];"*VENTANA*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%ROOF%'                           THEN 'COMPLETO'              --04.SI(CONTAR.SI([@CommercialDescription];"*ROOF*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%PAQUETE%'                        THEN 'COMPLETO'              --05.SI(CONTAR.SI([@CommercialDescription];"*PAQUETE*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%OUTDOOR%INDOOR%'                 THEN 'COMPLETO'              --06.SI(CONTAR.SI([@CommercialDescription];"*OUTDOOR*INDOOR*");"COMPLETO"; 
    WHEN   [Commercial Description]  LIKE '%INDOOR%OUTDOOR*%'                THEN 'COMPLETO'              --07.SI(CONTAR.SI([@CommercialDescription];"*INDOOR*OUTDOOR*");"COMPLETO"; 
    WHEN   [Commercial Description]  LIKE '%UNID%INTERNA%EXTERNA%'           THEN 'COMPLETO'              --08.SI(CONTAR.SI([@CommercialDescription];"*UNID*INTERNA*EXTERNA*");"COMPLETO"; 
    WHEN   [Commercial Description]  LIKE '%UNID%EXTERNA%INTERNA%'           THEN 'COMPLETO'              --09.SI(CONTAR.SI([@CommercialDescription];"*UNID*EXTERNA*INTERNA*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%EQUIPO%COMPLET%'                 THEN 'COMPLETO'              --10.SI(CONTAR.SI([@CommercialDescription];"*EQUIPO*COMPLET*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%UNID%INTERIOR%EXTERIOR%'         THEN 'COMPLETO'              --11.SI(CONTAR.SI([@CommercialDescription];"*UNID*INTERIOR*EXTERIOR*");"COMPLETO"; 
    WHEN   [Commercial Description]  LIKE '%UNID%EXTERIOR%INTERIOR%'         THEN 'COMPLETO'              --12.SI(CONTAR.SI([@CommercialDescription];"*UNID*EXTERIOR*INTERIOR*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%EVAPORADORA%CONDENSADORA%'       THEN 'COMPLETO'              --13.SI(CONTAR.SI([@CommercialDescription];"*EVAPORADORA*CONDENSADORA*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%CONDENSADORA%EVAPORADORA%'       THEN 'COMPLETO'              --14.SI(CONTAR.SI([@CommercialDescription];"*CONDENSADORA*EVAPORADORA*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%UNID%INTERIOR%'                  THEN 'EVAPORADORA'           --15.SI(CONTAR.SI([@CommercialDescription];"*UNID*INTERIOR*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%EVAPORADOR%FORZADA%'             THEN 'EVAPORADORA-FORZADA'   --16.SI(CONTAR.SI([@CommercialDescription];"*EVAPORADOR*FORZADA*");"EVAPORADORA-FORZADA";
    WHEN   [Commercial Description]  LIKE '%EVAPORADOR%'                     THEN 'EVAPORADORA'           --17.SI(CONTAR.SI([@CommercialDescription];"*EVAPORADOR*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%INDOOR%'                         THEN 'EVAPORADORA'           --18.SI(CONTAR.SI([@CommercialDescription];"*INDOOR*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%EVAPORAC%'                       THEN 'EVAPORADORA'           --19.SI(CONTAR.SI([@CommercialDescription];"*EVAPORAC*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%FAN%COIL%AGUA%'                  THEN 'EVAPORADORA'           --20.SI(CONTAR.SI([@CommercialDescription];"*FAN*COIL*AGUA*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%FAN%COIL%CHILLED%'               THEN 'EVAPORADORA'           --21.SI(CONTAR.SI([@CommercialDescription];"*FAN*COIL*CHILLED*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%CASET%AGUA%'                     THEN 'EVAPORADORA'           --22.SI(CONTAR.SI([@CommercialDescription];"*CASET*AGUA*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%CASSET%AGUA%'                    THEN 'EVAPORADORA'           --23.SI(CONTAR.SI([@CommercialDescription];"*CASSET*AGUA*");"EVAPORADORA";
    WHEN   [Commercial Description]  LIKE '%UNID%EXTERIOR%'                  THEN 'CONDENSADORA'          --24.SI(CONTAR.SI([@CommercialDescription];"*UNID*EXTERIOR*");"CONDENSADORA";
    WHEN   [Commercial Description]  LIKE '%CONDENSADOR%'                    THEN 'CONDENSADORA'          --25.SI(CONTAR.SI([@CommercialDescription];"*CONDENSADOR*");"CONDENSADORA";
    WHEN   [Commercial Description]  LIKE '%OUTDOOR%'                        THEN 'CONDENSADORA'          --26.SI(CONTAR.SI([@CommercialDescription];"*OUTDOOR*");"CONDENSADORA";
    WHEN   [Commercial Description]  LIKE '%CONDENSAC%'                      THEN 'CONDENSADORA'          --27.SI(CONTAR.SI([@CommercialDescription];"*CONDENSAC*");"CONDENSADORA";
    WHEN   [Commercial Description]  LIKE 'TARJETA ELECTRONICA%'             THEN 'TARJETA ELECTRONICA'   --28.SI(CONTAR.SI([@CommercialDescription];"TARJETA ELECTRONICA*");"TARJETA ELECTRONICA";
    WHEN   [Commercial Description]  LIKE 'DISPLAY%'                         THEN 'PANTALLA ELECTRONICA'  --29.SI(CONTAR.SI([@CommercialDescription];"DISPLAY*");"PANTALLA ELECTRONICA";
    WHEN   [Commercial Description]  LIKE 'PANTALLA[ ]ELECTRO%'              THEN 'PANTALLA ELECTRONICA'  --30.SI(CONTAR.SI([@CommercialDescription];"PANTALLA ELECTRO*");"PANTALLA ELECTRONICA";
    WHEN   [Commercial Description]  LIKE 'TARJETA[ ]PRINCIPAL%'             THEN 'TARJETA PRINCIPAL'     --31.SI(CONTAR.SI([@CommercialDescription];"TARJETA PRINCIPAL*");"TARJETA PRINCIPAL";
    WHEN   [Commercial Description]  LIKE 'SENSOR%'                          THEN 'SENSORES'              --32.SI(CONTAR.SI(AM564;"SENSOR*");"SENSORES";
    WHEN   [Commercial Description]  LIKE '%REPUEST%'                        THEN 'REPUESTOS'             --33.SI(CONTAR.SI([@CommercialDescription];"*REPUEST*");"REPUESTOS";
    WHEN   [Commercial Description]  LIKE 'MOTOR%'                           THEN 'PANTALLA ELECTRONICA'  --34.SI(CONTAR.SI([@CommercialDescription];"MOTOR*");"REPUESTOS";
    WHEN   [Commercial Description]  LIKE 'PANTALLA[ ]ELECTRO%'              THEN 'PANTALLA ELECTRONICA'  --30.SI(CONTAR.SI([@CommercialDescription];"PANTALLA ELECTRO*");"PANTALLA ELECTRONICA";
    WHEN   [Commercial Description]  LIKE 'TARJETA[ ]PRINCIPAL%'             THEN 'TARJETA PRINCIPAL'     --31.SI(CONTAR.SI([@CommercialDescription];"TARJETA PRINCIPAL*");"TARJETA PRINCIPAL";
    WHEN   [Commercial Description]  LIKE 'SENSOR%'                          THEN 'SENSORES'              --32.SI(CONTAR.SI(AM564;"SENSOR*");"SENSORES";
    WHEN   [Commercial Description]  LIKE '%REPUEST%'                        THEN 'REPUESTOS'             --33.SI(CONTAR.SI([@CommercialDescription];"*REPUEST*");"REPUESTOS";
    WHEN   [Commercial Description]  LIKE 'MOTOR%'                           THEN 'REPUESTOS'             --34.SI(CONTAR.SI([@CommercialDescription];"MOTOR*");"REPUESTOS";
    WHEN   [Commercial Description]  LIKE 'EQUIPO%AIRE%ACONDICIONADO%'       THEN 'COMPLETO'              --35.SI(CONTAR.SI([@CommercialDescription];"EQUIPO*AIRE*ACONDICIONADO*");"COMPLETO";
    WHEN   [Commercial Description]  LIKE '%UNID%EXTERNA%'                   THEN 'CONDENSADORA'          --36.SI(CONTAR.SI([@CommercialDescription];"*UNID*EXTERNA*");"CONDENSADORA";
    WHEN   [Commercial Description]  LIKE '%UNID%INTERNA%'                   THEN 'EVAPORADORA'           --37.SI(CONTAR.SI([@CommercialDescription];"*UNID*INTERNA*");"EVAPORADORA";
    WHEN  [Exporter]  LIKE '%MIDEA%' THEN --SI([@EXPORTADOR]="MIDEA"
       CASE  WHEN  [Commercial Description] like  '%MDV-D___%/%N1%[ ]%'      THEN 'EVAPORADORA'          --39.SI(CONTAR.SI([@CommercialDescription];"*MDV-D???*/*N1* *");"EVAPORADORA";
             WHEN  [Commercial Description] like  '%MWF-__CR[ ]%'            THEN 'COMPLETO'             --40.SI(CONTAR.SI([@CommercialDescription];"*MWF-??CR *");"COMPLETO";
             WHEN  [Commercial Description] like  '%MOV%-__C%'               THEN 'CONDENSADORA'         --41.SI(CONTAR.SI([@CommercialDescription];"*MOV*-??C*");"CONDENSADORA";
             WHEN  [Commercial Description] like  '%MVA%-___W%'              THEN 'EVAPORADORA'          --42.SI(CONTAR.SI([@CommercialDescription];"*MVA*-???W*");"EVAPORADORA";
             WHEN  [Commercial Description] like  '%MKT%-%'                  THEN 'EVAPORADORA'          --43.SI(CONTAR.SI([@CommercialDescription];"*MKT*-*");"EVAPORADORA";
             WHEN  [Commercial Description] like  '%MT%-__C%'                THEN 'EVAPORADORA'          --44.SI(CONTAR.SI([@CommercialDescription];"*MT*-??C*");"EVAPORADORA";
             WHEN  [Commercial Description] like  '%MR%-%C%'                 THEN 'COMPLETO'             --45.SI(CONTAR.SI([@CommercialDescription];"*MR*-*C*");"COMPLETO";
    		 WHEN  [Commercial Description] like  '%MU_-__CR%'               THEN 'EVAPORADORA'          --46.SI(CONTAR.SI([@CommercialDescription];"*MU?-??CR*");"EVAPORADORA"
        ELSE 'N.I.'
    END
    ELSE 'N.I.'
    END
    FROM
    [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)




    lunes, 28 de noviembre de 2016 16:17
  • tendra que ver algo la version de sql que utilizo??, lo probe en 

    SQL SERVER 2008 R2 express y si funciona,

    esta es la version que uso en el servidor

    Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)   Jun 28 2012 08:36:30   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 

    habrá que hacer algo adicional??


    lunes, 28 de noviembre de 2016 16:27
  • Verdad que no se lo que deseas hacer.

    En este caso tienes un error al declarar el tipo del parametro (hay un guion despues del tipo).

    Tampoco se de donde sale la columna [TIPO] pues esta no es parte del tipo de dato tabla que se creo.

    La sequencia a seguir es:

    - crear el tipo de dato tabla

    - crear la o las funciones que esperan un parametro tipo tabla

    - declarar una variable de dicho tipo para llenarla con las filas deseadas y pasarla como parametro a la funcion. Esto lo puedes hacer desde codigo T-SQL, ejemplo un procedimiento, o desde una aplicacion cliente que use .Net.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas



    lunes, 28 de noviembre de 2016 16:29
  • Verdad que no se lo que deseas hacer.

    En este caso tienes un error al declarar el tipo del parametro (hay un guion despues del tipo).

    Tampoco se de donde sale la columna [TIPO] pues esta no es parte del tipo de dato tabla que se creo.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas


    evidentemente he tenido que acortar las querys , pero el error es el mismo , los redondeos no me ayudan ,

    como he comentado antes probé corriendo en sql server express 20o8 r2 y corrió sin errores

    Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)   Jun 17 2011 00:54:03   Copyright (c) Microsoft Corporation  Express Edition with Advanced Services (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) 

    en este vaersión no em deja 

    Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)   Jun 28 2012 08:36:30   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 

    NOTA ya quite en la query anterior lo que podría generar confusion , ala mala trate de correr esto

    y sacando los case  no corre tampoco

    ALTER FUNCTION [dbo].[FN_CLIMATIZACION_EQUIPO] ( @ExcelTVP TVP READONLY --@FechInicio datetime,@FechaFin datetime,@EFA VARCHAR(20) ) RETURNS TABLE AS RETURN SELECT * FROM [dbo].[FN_CLIMATIZACION_EQUIPO_FILTRAR_SUBCLASE_TIPO] (@ExcelTVP)


    Y ME SALE EL MISMO ERROR


    lunes, 28 de noviembre de 2016 16:32
  • Por favor cierren este hilo sin marcar respuesta gracias
    lunes, 28 de noviembre de 2016 17:32
  • Ya empiezan a votarse entre ustedes asi que mejor cierro el hilo, la solución fue crearme otra base de datos y ejecutar las queries que ya tenia y todo corrio perfecto , me queda el misterio de saber porque no funcionaron en la otra BD,
    lunes, 28 de noviembre de 2016 20:46
  • Cual es el nivel de compatibilidad de la base de datos donde no funciona el script?


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    lunes, 28 de noviembre de 2016 21:27
  • Cual es el nivel de compatibilidad de la base de datos donde no funciona el script?


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    como saco ese dato?
    lunes, 28 de noviembre de 2016 22:15
  • Trata:

    SELECT name, compatibility_level
    FROM sys.databases
    WHERE name = N'tempdb';
    
    SELECT name, compatibility_level
    FROM sys.databases
    WHERE database_id = DB_ID();
    
    SELECT name, compatibility_level
    FROM sys.databases
    WHERE database_id = DB_ID(N'tempdb');

    Cualquiera de estas opciones.



    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    martes, 29 de noviembre de 2016 14:15
  • Hola , si lo probé y en efecto en esa BD el nivel de compatibilidad es distinto al de la BD que yo cree

    SELECT name, compatibility_level
    FROM sys.databases
    WHERE name = N'PRODUC';
    
    SELECT name, compatibility_level
    FROM sys.databases
    WHERE name = N'IMPORTACIONES';

    EN LA PRIMERA ME SALE 80 y en la segunda 100,como se corrige eso y sería conveniente mover ese parametro en un entorno de producción en el que se han desarrollado otros sistemas?

    martes, 29 de noviembre de 2016 17:10
  • El nivel 80 es de SS 2000, 90 - 2005, 100 - 2008, 110 - 2012, 120 - 2015 y 130 - 2016.

    Puedes usar el comando ALTER DATABASE para cambiar el nivel de compatibilidad de acuerdo a la version que tengas. Ojo, debes hacer esto en un servidor de desarrollo para que pruebes tus aplicaciones antes de hacerlo en produccion.

    Ejemplo:

    USE [master]
    GO
    ALTER DATABASE [AdventureWorks2014] SET COMPATIBILITY_LEVEL = 100
    GO

    Tambien puedes usar el GUI de SSMS (Object Explorer - Right-Click en la db - )Properties - Options.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    • Propuesto como respuesta Joyce_ACModerator miércoles, 30 de noviembre de 2016 17:43
    martes, 29 de noviembre de 2016 19:56