raghads
Tengo un proyecto de Power BI y estoy usando DirectQuery. Estoy tratando de agregar una tabla visual. Cuando arrastro el valor que quiero al campo de la tabla, me da el siguiente error:
Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Arabic_CI_AS" in the equal to operation.. The exception was raised by the IDbCommand interface.
Intenté lo siguiente: creé una nueva columna de SQL Server que clasifica la columna afectada. Entonces se convierte en algo como esto:
SELECT [ACCOUNTNUM], [ACCOUNTNUM] collate SQL_Latin1_General_CP1_CI_ as ACCOUNTNUM_2 FROM myTable
Cuando usé la nueva columna, todavía me mostraba el mismo error. Intenté cambiar el intercalar SQL_Latin1_General_CP1_CI_AS a intercalar Arabic_CI_AS pero sigue ocurriendo el mismo error.
¿Qué tengo que hacer?
raghads
En respuesta a v-yuezhe-msft
Gracias, pero ya encontré una solución sin tener que cambiar la intercalación de la tabla desde SQL Server. Hice lo siguiente:
Cree una Vista de la tabla que necesita desde SQL Server, pero hágalo así:
USE [enter_database_name_here] GO CREATE VIEW [dbo].[enter_view_name_here] as Select [column_name] collate SQL_Latin1_General_CP1_CI_AS as new_column_name from table_name
Básicamente, solo coteje todas las columnas. Ahora puede importar o DirectQuery esta vista y obtendrá los datos.
Espero que esto ayude a cualquiera que busque una respuesta a este problema.
v-yuezhe-msft
@raghads,
En primer lugar, compruebe la intercalación de la tabla y las columnas que importó a Power BI Desktop mediante T-SQL. Si hay alguna diferencia entre la clasificación, se produciría el error anterior.
SELECT DATABASEPROPERTYEX('Yourdatabase', 'Collation') GO /* Find Collation of SQL Server Database Table Column */ USE yourdatabase GO SELECT name, collation_name FROM sys.columns WHERE OBJECT_ID IN (SELECT OBJECT_ID FROM sys.objects WHERE type="U")
En segundo lugar, en SQL Server, cambie la intercalación de las columnas problemáticas con el T-SQL a continuación.
ALTER TABLE dbo.yourtable ALTER COLUMN yourcolumn datatype COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL; GO
Hay un hilo similar para su referencia.
https: //community.powerbi.com/t5/Integrations-with-Files-and/Couldn-t-load-the-data-for-this-visual -…
Saludos,
Lydia
raghads
En respuesta a v-yuezhe-msft
Estoy usando DirectQuery, por lo que no estoy importando ninguna tabla. Actualmente no tengo el poder de cambiar la intercalación de ninguna tabla (no soy un administrador). Prefiero no cambiar nada en las tablas de SQL Server directamente.
Obtengo los datos de una vista. ¿Hay alguna línea de código que pueda agregar para poder obtener los valores que necesito sin tener que cambiar la clasificación de la tabla original?
v-yuezhe-msft
En respuesta a raghads
@raghads,
Me temo que tendrá que pedirle al administrador de SQL Server que cambie la intercalación por usted. No podemos resolver este problema en el lado de Power BI sin cambiar la intercalación.
Saludos,
Lydia
raghads
En respuesta a v-yuezhe-msft
Gracias, pero ya encontré una solución sin tener que cambiar la intercalación de la tabla desde SQL Server. Hice lo siguiente:
Cree una Vista de la tabla que necesita desde SQL Server, pero hágalo así:
USE [enter_database_name_here] GO CREATE VIEW [dbo].[enter_view_name_here] as Select [column_name] collate SQL_Latin1_General_CP1_CI_AS as new_column_name from table_name
Básicamente, solo coteje todas las columnas. Ahora puede importar o DirectQuery esta vista y obtendrá los datos.
Espero que esto ayude a cualquiera que busque una respuesta a este problema.