Ошибка арифметического переполнения при преобразовании nvarchar в числовой тип данных в инструкции вставки - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь вставить внутрь значения ключа test_Master_Product (значения int), которые на самом деле являются nvarchar (50) из temp # Master_Product. Я пробовал либо с конвертировать, анализировать и приводить. Никто из них не работает. Причина, по которой я использовал nvarchar (50), заключалась в том, что в этой временной таблице были реальные значения, которые затем обновлялись значениями их ключей. Теперь мне нужно преобразовать эти значения в тип данных INT, потому что, даже если они nvarchar (50), они в действительности являются числами.

Спасибо за поддержку


INSERT INTO [dbo].[test_Master_Product]
           ([PNC_KEY]
           ,[MODEL_KEY]
           ,[GPH_PRODUCT_GROUP_KEY]
           ,[PREDECESSOR_KEY]
           ,[SUCCESSOR_KEY]
           ,[PRODUCED_FROM]
           ,[PRODUCED_UNTIL]
           ,[PACKAGE_HEIGHT]
           ,[PACKAGE_WIDTH]
           ,[PACKAGE_DEPTH]
           ,[SHIPPING_VOLUME]
           ,[ACTIVE]
           ,[SUPPLIER_ID]
           ,[PRODUCTION_BASE_MODEL_KEY]
           ,[PRODGROUP_KEY]
           ,[BRAND_KEY]
           ,[PS_STATUS_KEY]
           ,[INTRASTAT_CODE_KEY]
           ,[FUNCTION_KEY]
           ,[CLASS_KEY]
           ,[INSTALLATION_KEY]
           ,[TYPOLOGY_KEY]
           ,[PLATFROM_KEY]
           ,[MASTER_MODEL_KEY]
           ,[BASE_TEMPLATE_MODEL_KEY]
           ,[PROJECT_NAME_KEY]
           ,[INSERT_DATE]
           ,[UPDATE_DATE])


SELECT   
       [PNC_KEY]
      ,CAST([MODEL_KEY] AS int)
      ,CAST([GPH_PRODUCT_GROUP_KEY] AS int)
      ,CAST([PREDECESSOR_KEY] AS int)
      ,CAST([SUCCESSOR_KEY] AS int)
      ,[PRODUCED_FROM]
      ,[PRODUCED_UNTIL]
      ,[PACKAGE_HEIGHT]
      ,[PACKAGE_WIDTH]
      ,[PACKAGE_DEPTH]
      ,CAST([SHIPPING_VOLUME]AS decimal(9,6))
      ,CAST([ACTIVE] AS bit)
      ,CAST([SUPPLIER_ID] AS int)
      ,CAST([PRODUCTION_BASE_MODEL_KEY] AS int)  
      ,CAST([PRODGROUP_KEY] AS int)
      ,CAST([BRAND_KEY] AS int)
      ,CAST([PS_STATUS_KEY] AS int)
      ,CAST([INTRASTAT_CODE_KEY] AS int)
      ,CAST([FUNCTION_KEY] AS int)
      ,CAST([CLASS_KEY] AS int)
      ,CAST([INSTALLATION_KEY] AS int)  
      ,CAST([TYPOLOGY_KEY] AS int)    
      ,CAST([PLATFROM_KEY] AS int)   
      ,CAST([MASTER_MODEL_KEY] AS int)
      ,CAST([BASE_TEMPLATE_MODEL_KEY] AS int)   
      ,CAST([PROJECT_NAME_KEY] AS int)
      ,[INSERT_DATE]
      ,[UPDATE_DATE]

FROM [temp#Master_Product]

Msg 8115, Level 16, State 8, Line 659
Arithmetic overflow error converting nvarchar to data type numeric.
The statement has been terminated.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...