Error de clasificación

Un usuario Pregunto ✅

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.

@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?

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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *