Forum Discussion
Error de OLE DB u ODBC:
Hola
Estoy recibiendo "Error de OLE DB u ODBC: [Expression.Error] No podemos convertir el valor null al tipo Lógico" error. No estoy seguro de dónde me equivoco. El archivo adjunto contiene el código. Cualquier ayuda sería realmente apreciada.
A continuación se muestra mi código:
dejar
Origen = Sql.Database("pgissql01aenz.database.wendows.net", "GIS_ANALYSIS"),
sde_support_structure_crossarm_evw = Source{[Schema="sde",Item="support_structure_crossarm_evw"]}[Datos],
#"Filas filtradas" = Table.SelectRows(sde_support_structure_crossarm_evw, cada una ([STATUS] <> null)),
#"Filas filtradas4" = Table.SelectRows(#"Filas filtradas", cada una ([ESTADO] = "En servicio")),
#"Consultas combenadas" = Table.NestedJoin(#"Filtered Rows4", {"SITE_NUMBER"}, Poles, {"SITE_NUMBER"}, "sde support_structure_evw", JoinKind.LeftOuter),
#"Expanded sde support_structure_evw" = Table.ExpandTableColumn(#"Merged Queries", "sde support_structure_evw", {"INSTALLATIONDATE", "FACILITYID", "Criticality zone"}, {"sde support_structure_evw. INSTALLATIONDATE", "sde support_structure_evw. FACILITYID", "sde support_structure_evw. Zona de criticidad"}),
#"Columnas cuyo nombre ha cambiado" = Table.RenameColumns(#"Expanded sde support_structure_evw",{{"sde support_structure_evw. INSTALLATIONDATE", "POLE_INSTALLATIONDATE"}, {"sde support_structure_evw. FACILITYID", "POLE_FACILITYID"}, {"sde support_structure_evw. Zona de criticidad", "Zona de criticidad"}}),
#"Added Custom" = Table.AddColumn(#"Columnas renombradas", "INST_DATE", cada una if [INSTALLATIONDATE] = null y [POLE_INSTALLATIONDATE] <> null then [POLE_INSTALLATIONDATE]
más
[FECHA DE INSTALACIÓN]),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Added Custom",{{"INST_DATE", escriba datetime}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type", "FINAL_FACILITYID", each if [FACILITYID] = null y [POLE_FACILITYID] <> null then [POLE_FACILITYID]
más
[FACILITYID]),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom1",{{"FINAL_FACILITYID", escriba text}}),
#"Filas filtradas1" = Table.SelectRows(#"Changed Type1", cada una ([INST_DATE] <> null)),
#"Added Custom2" = Table.AddColumn(#"Filtered Rows1", "Age", each DateTime.LocalNow() - [INST_DATE]),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Total Years", each Duration.TotalDays([Age]) / 365),
#"Columnas eliminadas" = Table.RemoveColumns(#"Added Custom3",{"Age"}),
#"Columnas cuyo nombre ha cambiado1" = Table.RenameColumns(#"Columnas eliminadas",{{"Años totales", "Edad"}}),
#"Tipo cambiado2" = Table.TransformColumnTypes(#"Columnas cuyo nombre ha cambiado1",{{"Edad", número de tipo}}),
#"Added Custom4" = Table.AddColumn(#"Changed Type2", "Health Category", each let material = if (Text.Contains([CROSSARMMATERIAL],"W") or Text.Contains([CROSSARMMATERIAL],"M")) and [CROSSARMMATERIAL] <> "UNKNOWN" then true más false
in
si material = verdadero y [Edad] > = (55-1) entonces "H1"
más
si material = true y ([Age]< (55-1) y [Age] >= (55-3) ) entonces "H2"
más
si material = true y ([Age]< (55-3) y [Age] >= (55-10) ) entonces "H3"
más
si material = true y ([Edad]< (55-10) y [Edad] >= (55-20) ) entonces "H4"
más
si material = true y [Age]< (55-20) entonces "H5"
más
if [CROSSARMMATERIAL] = "ACERO" y [Edad] > (75-1) entonces "H1"
más
if [CROSSARMMATERIAL] = "ACERO" y ([Edad]< (75-1 )y [Edad] >= (75-3) ) entonces "H2"
más
if [CROSSARMMATERIAL] = "ACERO" y ([Edad]< (75-3) y [Edad] >= (75-10) ) entonces "H3"
más
if [CROSSARMMATERIAL] = "ACERO" y ([Edad]< (75-10) y [Edad] >= (75-20) ) entonces "H4"
más
if [CROSSARMMATERIAL] = "ACERO" y [Edad] < (75-20) entonces "H5"
más
si [Edad] > (65-1) entonces "H1"
más
if ([Edad]< (65-1 )y [Edad] >= (65-3) ) entonces "H2"
más
if([Edad]< (65-3) y [Edad] >= (65-10) ) entonces "H3"
más
if ([Age]< (65-10) and [Age] >= (65-20) ) then "H4"
else
si [Edad] < (65-20) entonces "H5" más nulo),
#"Filas filtradas3" = Table.SelectRows(#"Added Custom4", cada una ([Categoría de estado] <> null)),
#"Columna condicional agregada" = Table.AddColumn(#"Filtered Rows3", "Likelihood", each if [Health Category] = "H5" then "Rare" else if [Health Category] = "H2" then "Likely" else if [Health Category] = "H3" then "Possible" else if [Health Category] = "H4" then "Unlikely" else "Almost Certain"),
#"Changed Type3" = Table.TransformColumnTypes(#"Added Conditional Column",{{"Likelihood", escriba text}}),
#"Added Conditional Column1" = Table.AddColumn(#"Changed Type3", "Impact", each if [Criticality zone] = "C0" then "Catastrophic" else if [Criticality zone] = "C1" then "Major" else if [Criticality zone] = "C2" then "Moderate" else if [Criticality zone] = "C3" then "Minor" else if ([Criticality zone] = "C4" or [Criticality zone] = "C5") then "Insignificant" else ""),
#"Added Conditional Column2" = Table.AddColumn(#"Added Conditional Column1", "Critical Zone Order", each if ([Criticality zone] = "C4" or [Criticality zone] = "C5") then 1 else if [Criticality zone] = "C3" then 2 else if [Criticality zone] = "C2" then 3 else if [Criticality zone] = "C1" then 4 else if [Criticality zone] = "C0" then 5 else 1),
#"Changed Type4" = Table.TransformColumnTypes(#"Added Conditional Column2",{{"Critical Zone Order", escriba text}}),
#"Added Conditional Column3" = Table.AddColumn(#"Changed Type4", "AHI SCORE", each if [Likelihood] = "Almost Certain" then 1 else if [Likelihood] = "Likely" then 2 else if [Likelihood] = "Possible" then 3 else if [Likelihood] = "Unlikely" then 4 else 5),
#"Tipo cambiado5" = Table.TransformColumnTypes(#"Added Conditional Column3",{{"AHI SCORE", Int64.Type}}),
#"Redondeado hacia abajo" = Table.TransformColumns(#"Changed Type5",{{"Age", Number.RoundDown, Int64.Type}}),
#"Columnas eliminadas1" = Table.RemoveColumns(#"Redondeado hacia abajo",{"ABANDONDATE", "CONDITIONDATE", "ABANDONREASON", "DATECREATED", "DATEMODIFIED", "GlobalID", "POLE_INSTALLATIONDATE", "SDE_STATE_ID"})
in
#"Columnas eliminadas1"
2 Replies
- Syndicate_Admin
Administrator
Es sde. [support_structure_crossarm_evw] una vista?
¿Puede comprobar si puede consultar esto desde SQL Server Management Studio o Azure DataFactory? - Syndicate_Admin
Administrator
No @leo_89 ,
De acuerdo con el mensaje de error, parece que ynuestra fila contiene valor nulo en algún lugar de sus datos y null no es ni True ni False. Por lo tanto, al intentar convertir a tipo de datos lógico, está dando el error. Tiene que quitar el valor null de las filas.
Es muy probable que esta parte inferior de la lógica no incluya operaciones en valores nulos/en blanco. Le sugiero que compruebe los pasos aplicados para encontrar el paso exactamente error.
#"Added Custom4" = Table.AddColumn(#"Changed Type2", "Health Category", each let material = if (Text.Contains([CROSSARMMATERIAL],"W") or Text.Contains([CROSSARMMATERIAL],"M")) and [CROSSARMMATERIAL] <> "UNKNOWN" then true else falseSaludos
Eyelyn Qin
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.