Use pattern matching to recognize patterns across multiple rows in a table

Bem, esse é o último assunto a ser abordado pela prova, a partir daqui estarei apenas revisando alguns assuntos e dando algumas dicas que encontrar, e em algumas semanas espero estar fazendo a prova Oracle SQL Expert e avisarei dos resultados por aqui. Deixei esse tópico por último por acreditar ser um dos mais complicados …

Continue lendo Use pattern matching to recognize patterns across multiple rows in a table

cross_outer_apply_clause

Essa cláusula apensar de parecer nova, que pode fazer algo novo, não é bem assim. O CROSS APPLY ou o OUTER APPLY são apenas variações de algo existente na sintaxe ANSI, do CROSS JOIN e do LEFT OUTER JOIN. A opção table_reference poderá ser uma tabela, inline view. Já a collection_expression poderá ser uma subquery, …

Continue lendo cross_outer_apply_clause

Use the SQL row limiting clause

Antes para limitar o resultados da nossa pesquisa, poderíamos utilizar o ROWNUM < n, caso na query existisse ORDER BY teríamos que fazer um select dentro de outro, SELECT ...(SELECT ... ORDER BY col) ROWNUM < n. Pois o rownum é feito antes do ORDER BY. Mas agora podemos utilizar a row_limiting_clause. Com essa cláusula …

Continue lendo Use the SQL row limiting clause

Use explicit default values in INSERT and UPDATE statements

Vimos anteriormente algumas novidades na versão 12c do Oracle no que diz respeito a alguns melhoramentos do DEFAULT tanto na criação de uma tabela como em alterá-la. Agora podemos usar sequences. Temos uma nova opção ON NULL que define o valor DEFAULT mesmo se utilizarmos NULL de forma explícita no INSERT ou UPDATE. Além de …

Continue lendo Use explicit default values in INSERT and UPDATE statements

Create and Maintain Indexes Including Invisible Indexes and Multiple Indexes on the Same Columns

Podemos criar index invisíveis que serão ignoradas pelo optimizer a menos que o parâmetro OPTIMIZER_USE_INVISIBLE_INDEXES esteja como TRUE. Para criar um index invisível é só adicionar a palavra reservada INVISIBLE no final do comando, da seguinte maneira: CREATE INDEX nome_index ON tabela(coluna) INVISIBLE; Podemos criar também mais de um index na mesma coluna, de tipos …

Continue lendo Create and Maintain Indexes Including Invisible Indexes and Multiple Indexes on the Same Columns

Use 12c Enhancements to the DEFAULT Clause, Invisible Columns, Virtual Columns and Identity Columns in Table Creation/Alteration

Neste post iremos ver algumas novidades do 12c com respeito a tabelas, tanto no momento da sua criação como na alteração. INVISIBLE COLUMNS O valor DEFAULT é VISIBLE. Se definirmos uma coluna como INVISIBLE ela não será listada quando executarmos um SELECT *, apenas se especificarmos o nome da coluna no SELECT LIST. Também não …

Continue lendo Use 12c Enhancements to the DEFAULT Clause, Invisible Columns, Virtual Columns and Identity Columns in Table Creation/Alteration

Recursively Truncate Child Tables

Já vimos anteriormente aqui no blog como apagar todo o conteúdo de uma tabela de forma quase instantânea através do TRUNCATE. Mas se existir constraints referenciais, ou seja, constraints FOREIGN KEY que referenciam esta tabela e que já possua linhas referenciando à mesma, o TRUNCATE irá falhar, mesmo se a FOREIGN KEY tiver a opção …

Continue lendo Recursively Truncate Child Tables

Create a Lateral Inline View in a Query

Uma LATERAL INLINE VIEW, nada mais é que uma inline view(subquery no from) que referencia uma outra tabela(a esquerda(left)) do FROM. Mas existe algumas restrições, uma delas é que não é possível utilizar as cláusulas PIVOT e UNPIVOT ou um padrão na cláusula table_reference, entre outras restrições. Para entendermos o seu funcionamento, vamos ver um …

Continue lendo Create a Lateral Inline View in a Query

Analytical Functions

As funções analíticas trabalham em valores agregados baseados em grupos de linhas. Mas elas são diferentes das funções de agregação que já conhecemos, como AVG, SUM, MAX, MIN e etc em conjunto com o GROUP BY. As funções analíticas retornam várias linhas por cada grupo, esse grupo é chamado de WINDOW, que é definida na …

Continue lendo Analytical Functions

PIVOT and UNPIVOT Clauses

Estou passando aqui para avisar que postei o primeiro tópico da lista de novos itens para a certificação SQL Expert que apresentei no post anterior. Fiz esse post no site Profissionais GPO no qual sou articulista. O link é este: http://www.profissionaloracle.com.br/gpo/artigo/programacao/511-pivot-and-unpivot