Como criar um campo autoincremental no Oracle PL/SQL

O Oracle não tem campos auto incrementais, para simular esta funcionalidade é necessário criar “Sequences”: [sourcecode language=”SQL”] CREATE SEQUENCE seqFuncionarios INCREMENT BY 1 START WITH 1 MAXVALUE 99999 NOCACHE NOCYCLE; [/sourcecode] Para utilizar, a cada linha adicionada ele irá aumentar em 1 (INCREMENT BY 1) o valor desta “sequence”. [sourcecode language=”SQL”] INSERT INTO FUNCIONARIOS (ID, […]

Como utilizar cursor no PL SQL

Segue abaixo um exemplo básico do uso de cursor na linguagem PL/SQL [sourcecode language=”SQL”] DECLARE CURSOR Funcionarios IS SELECT matricula nome FROM funcionario registroFuncionario Funcionarios%Rowtype; BEGIN OPEN Funcionarios; LOOP Fetch Funcionarios Into registroFuncionario; EXIT WHEN Funcionarios%NotFound; Dbms_Output.Put_Line (‘Funcionário: ‘ || registroFuncionario.matricula || ‘ – ‘ || registroFuncionario.nome ); END LOOP; CLOSE Funcionarios; END; [/sourcecode]

Como usar a função first_day no PL/SQL

Apesar de ter a função last_day() no Oracle, a função first_day foi deixada para trás. Para encontrar este valor, você pode utilizar o código “trunc(DATA,’MON’)”. Veja o exemplo: select trunc(sysdate,’MON’) from dual; Se a data atual for dia 27/06/2017, o valor retornado será “01/06/2017”.

Como utilizar um campo nomeado (ALIAS) em um GROUP BY em uma Consulta SQL

Por incrível que pareça isso não é possível! Então, se tiver um campo calculado, você terá que colocar a formula (ou case) dentro do “Group by”. Mas existe uma forma de contornar este problema, para isso siga o exemplo abaixo: SELECT *FROM ( SELECT trunc((months_between(sysdate, to_date(’17/02/2015′,’dd/mm/yyyy’)))/12) AS idade FROM DUAL)GROUP BY idade