2010-08-03 17 views
5

Me inclino recientemente hacia en la jerga de Oracle y cuanto más estoy investigando, más me atrae.Cláusula modelo en Oracle

Recientemente me he encontrado con MODEL clause, pero para ser sincero, no estoy entendiendo el comportamiento de esto. ¿Alguien con algunos ejemplos por favor hágamelo saber sobre el mismo.

Gracias de antemano

+0

Mejor enlace: http://www.oracle.com/technology/obe/obe10gdb/bidw/sqlmodel/sqlmodel.htm –

Respuesta

4

Algunos ejemplos de modelo se presentan here.

Personalmente he visto MODEL varias veces y todavía no he logrado encontrar un caso de uso para él. Aunque al principio parece ser útil, hay muchos lugares donde solo funcionan los literales (en lugar de enlaces o variables) que restringen su flexibilidad. Por ejemplo, en los cálculos entre hileras, no puede referirse fácilmente a la fila 'anterior' o 'siguiente', pero debe poder identificarlo absolutamente por sus atributos. Por lo tanto, no puede decir "tomar el valor de la fila con la misma fecha del mes anterior", pero solo puede codificar una fecha específica.

Puede ser utilizado (internamente) por algunas herramientas analíticas. Pero como herramienta para el usuario final, nunca lo "entendí". Anteriormente, le recomendé que, si alguna vez encuentra un problema que cree que puede resolverse mediante la aplicación de la cláusula MODELO, vaya y descanse hasta que la sensación desaparece.

+0

+1 Para confirmar lo que "pensé", había escuchado acerca de esta cláusula durante una sesión en una Evento de UKOUG. Gracias –

+1

De acuerdo con [whitepaper] (http://www.oracle.com/technetwork/middleware/bi-foundation/10gr1-twp-bi-dw-sqlmodel-131067.pdf), puede consultar el "anterior" o "siguiente" fila especificando 'CV() - 1' o' CV() + 1', donde 'CV()' representa el valor actual –

3

Creo que la cláusula MODEL es bastante simple de entender, cuando lee lentamente el official whitepaper. En mi opinión, el libro blanco explica muy bien la cláusula MODEL paso a paso, agregando una característica a la vez a los ejemplos, omitiendo las características más avanzadas de la documentación oficial.

A partir del documento técnico, también me resulta fácil entender cuándo utilizar realmente la cláusula MODELO. En algunos ejemplos, es mucho más simple hacer operaciones de "hoja de cálculo de Excel" usando MODEL en lugar de, por ejemplo, usar funciones de ventana, CONNECT BY o factorizar subconsulta. Piensa en Excel. Siempre que desee definir un conjunto de reglas complejas para las columnas de Excel, use la cláusula MODEL. reglas de hoja de cálculo de Excel Ejemplo:

A10 = A9 + A8 
B10 = A10 * 5 
C10 = MAX(A1:A9) 
D10 = C10/A10 

En otras palabras, MODEL es una muy poderosa hoja de cálculo SQL!

0

La mejor explicación está en el documento oficial. Utiliza el esquema de demostración de SH y realmente lo necesita instalado.

http://www.oracle.com/technetwork/middleware/bi-foundation/10gr1-twp-bi-dw-sqlmodel-131067.pdf

No creo que hacen un muy buen trabajo explicando esto. Básicamente, le permite cargar datos en una matriz y luego recorrer la matriz con SQL directo, en lugar de tener que escribir lógica de procedimiento. Muchos de los términos se basan en términos de hoja de cálculo (se usan en la Ayuda de Excel). Entonces, si los tienes en excel, esto sería confuso.

Deberían haber dibujado una imagen para cada una de las consultas y mostrar la matriz creada de la que se muestra cómo se ve a través de la matriz. La sintaxis parece estar basada en la sintaxis de Excel. No estoy seguro de si esto es común a todas las herramientas de la hoja de cálculo o no.

Tiene usos. La colocación de la tolva es la más común. Ver el segundo ejemplo. Este es básicamente un grupo complejo donde se agrupa por un rango, pero ese rango puede cambiar. Requiere lógica de procedimiento. El ejemplo ofrece 3 formas de hacerlo, una de las cuales es la cláusula modelo.

http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22asktom-1518271.html

creo que la gente (a menudo manager) que hacen las hojas de cálculo complejas pueden tener un tiempo más fácil de ver esto y usos para conseguir la jerga.

Cuestiones relacionadas