Anónimo
Hola a todos,
Soy nuevo en Power query y en este foro.
Tengo el siguiente requisito,
1. El usuario ingresará el PROPIETARIO, TABLE_NAME en una hoja del Excel actual (cualquier número de líneas)
2. Necesitamos obtener los registros coincidentes (con la unión de PROPIETARIO, NOMBRE_TABLA) mediante la consulta (SELECCIONAR PROPIETARIO, NOMBRE_TABLA, NOMBRE_COLUMNA DE TABLAS_DBA) de la base de datos de Oracle
Intenté esto usando MERGE Queries y unión interna con ambas columnas o combinando CONCAT(OWNER,».»,TABLE_NAME), parece que funciona. Pero lleva más tiempo, ya que la consulta de la base de datos de Oracle obtiene más registros.
¿Existe alguna opción para construir la consulta utilizando datos de las entradas del usuario y enviarla a la base de datos de Oracle, de modo que llene el filtro de datos al principio y devuelva solo menos datos a Excel? Mi consulta de Oracle tendrá millones de filas, pero si aplicamos el filtro, el resultado sería miles.
Algo como abajo
= Oracle.Database(«rmylocaldb», [Query=»SELECT * FROM DBA_TAB_COLS WHERE OWNER_TNAME IN («&Table.SelectColumns(Source,{«OWNER_TABLE»})])
O alguna otra buena opción hay?
Gracias de antemano.
v-juanli-msft
hola @anonimo
Dos métodos:
1. Cree parámetros para «propietario» y «nombre de tabla», luego use parámetros en la cadena de conexión de Oracle.
por ejemplo, consulte:
https://community.powerbi.com/t5/Power-Query/Are-nested-parameters-supported/td-p/1159816
2.
cree un archivo de Excel e ingrese valores dentro de él, conéctese al archivo de Excel con power bi,
luego conéctese a la base de datos Oracle y cambie la consulta para convertirla en una función.
invoque la consulta (conexión a Oracle) en la tabla que es de Excel.
https://www.myonlinetraininghub.com/scrape-data-multiple-web-pages-power-query
Atentamente
Maggie
Equipo de apoyo comunitario _ Maggie Li
Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
lbendlin
que conector usas? ¿Oracle «nativo», ODBC o algo más? ¿Ese conector admite consultas personalizadas y/o plegado de consultas?
Anónimo
En respuesta a lbendlin
Estoy conectado a la base de datos Oracle (12c) desde Excel como menú Datos -> Nueva consulta -> Desde la base de datos -> Desde la base de datos Oracle -> Aquí me conecto a mi base de datos y examino la vista desde el esquema.
My Qeury Source se muestra en la fórmula de Excel como
= Oracle.Database(«my_dn_tns», [HierarchicalNavigation=true, Query=»SELECT * FROM VIEW_TAB_COLS»])
lbendlin
En respuesta a Anónimo
Cambia tu consulta a
= Oracle.Database(«my_dn_tns», [HierarchicalNavigation=true, Query=»SELECT * FROM VIEW_TAB_COLS WHERE OWNER='» & <reference to owner cell> &»‘»])
Anónimo
En respuesta a lbendlin
Gracias por la respuesta.
Lo cambio como abajo
= Oracle.Database(«my_dn_tns», [HierarchicalNavigation=true, Query=»SELECT * FROM VIEW_TAB_COLS WHERE OWNER='» & Sheet3!A5 &»‘»])
Y recibiendo un mensaje de error como
Expression.Error: No se reconoció la sección ‘Hoja2’. Asegúrate de que esté escrito correctamente.
No estoy seguro de cómo referir el valor de celda particular de otras hojas aquí.
También mi requisito es poner una lista de valores.
Algo como
= Oracle.Database(«my_dn_tns», [HierarchicalNavigation=true, Query=»SELECT * FROM VIEW_TAB_COLS WHERE OWNER IN (‘» & Sheet3!A1:A15 &»‘)»])