Como Programar com PL / SQL no Oracle 12c

Existem várias maneiras diferentes de trabalhar dentro de seu banco de dados 12c Oracle para manipular seus dados. PL / SQL é uma linguagem de consulta estruturada (SQL), com mais poderosos contructs programáticas construídas em torno de seu código. Por exemplo, oferece PL / SQL

  • looping controle

  • variáveis

  • Se / então constrói

  • tratamento de erros

SQL normal na verdade não tem nada disso. SQL normal é bom para usar no código que age sobre dados específicos no "agora". Ele não pode fazer quaisquer decisões baseadas em dados. Você tem que saber o que os dados são - e como você quer olhar.

PL / SQL também é mais seguro do que o SQL regular. Tal como está, quando os usuários executar SQL, eles têm que ter permissões sobre os objetos subjacentes em que os dados residem. No entanto, com PL / SQL, programas chamados executar com as permissões do proprietário.

Dessa forma, o proprietário dos dados poderia escrever um programa para gerenciar os dados. O proprietário, em seguida, dá acesso ao programa para o usuário, não os objetos subjacentes. Por exemplo, digamos que você tem um programa que puxa salário história de um usuário para eles para ver.

Você não quer que o usuário seja capaz de selecionar na tabela de salário do empregado. E sem um programa PL / SQL, que é o que você teria que fazer. Você pode codificá-lo de modo que quando o programa é executado, o programa puxa o usuário conectado como uma variável e recolhe a história do salário por apenas esse usuário.

PL / SQL é frequentemente o domínio primário de desenvolvedores de aplicativos. Como um administrador de banco de dados (DBA), no entanto, você também deve estar familiarizado com as premissas básicas do código e ser capaz de ler como as funções de código. Mesmo que os DBAs podem não ser os desenvolvedores de aplicativos, você será chamado para ajudar a solucionar problemas de código ou código de música que pode ser na forma de programas PL / SQL.

tipos básicos de PL / SQL no Oracle programas 12c

PL / SQL programas vêm em muitas formas. programas PL / SQL também são por vezes referido como "unidades de programa". Veja abaixo para obter uma lista dos tipos mais comuns de PL / SQL constrói você vai se deparar.

NomeDescrição
ANONYMOUS BLOCOprograma sem nome que é executado a partir da linha de comando
PROCEDIMENTOArmazenado, programa denominado que executa uma tarefas
FUNÇÃOPrograma que leva entrada, age sobre ela, e producesoutput
PACOTEGrupo de procedimentos e / ou funções nomeadas as quais estão relacionadas bytask
GATILHOPrograma atua sobre resultado de alguma outra ação-firesautomatically
Noções básicas de estrutura de bloco PL / SQL no Oracle 12c

PL / SQL programas são construídos sobre o estrutura do bloco. Isto é, eles podem ser divididos em partes específicas do programa com base na função. As partes do bloco PL / SQL diferem ligeiramente com base no tipo de unidade de programa, mas todos eles têm características semelhantes. Aqui está uma repartição das partes de uma unidade de programa PL / SQL:

  • Declarativo: Esta seção contém o nome da unidade (se ele é chamado) e quaisquer variáveis. As variáveis ​​são nomeados, digitado e, opcionalmente, inicializados na seção. A unidade de programa não seria nomeado se ele é codificado como um bloco anônimo. Um bloco anônimo é usado quando você está muitas vezes escrever um programa para um uso one-time.

  • Corpo: Esta é a seção que contém a carne do programa. Ele contém a funcionalidade e a lógica de negócios necessária para processar as variáveis ​​e dados. Você vai ver coisas como loops e if / then declarações nesta seção.

  • Exceção: Esta seção define e controla todos os erros que surgem durante o processamento do corpo. Se um erro for devidamente tratada, muitas vezes o programa pode continuar a funcionar. Ou, pelo menos, uma saída de mensagem com significado para o utilizador final. Se for encontrado um erro e não é tratada pela seção de exceção, muitas vezes, o programa aborta com uma mensagem de erro padrão.

  • Fim: A secção final não contém nada. É apenas significa que o programa é no final do seu processamento. E numa embalagem de diversos procedimentos, o troço da extremidade a separa o procedimento seguinte na lista.

Como chamar programas PL / SQL com o Oracle 12c

PL / SQL procedimentos, funções e pacotes são chamados em um par de maneiras diferentes. Você pode usar o comando EXECUTAR, ou você pode chamar o programa como parte de outro bloco. Gatilhos, Por outro lado, não são chamados a partir da linha de comando.

Eles automaticamente executam somente depois que algum outro processo seja concluído. Por exemplo, você pode querer um gatilho para disparar cada vez que alguém atualiza a coluna de salário da tabela de funcionários. Então, talvez o gatilho dispara um e-mail para o gerente de RH para relatar a mudança.

O comando DESCRIBE também pode trabalhar contra programas PL / SQL. Isso pode ser útil se você não sabe os argumentos ou variáveis ​​que o procedimento pode levar para a entrada. Por exemplo, digamos que você tenha um procedimento que recebe o salário para um empregado com base na entrada primeiro e último nome. O procedimento é chamado get_sal.

SQL> describe get_salPROCEDURE get_salArgument Nome Tipo In / Out Padrão? ------------------------------ -------- --------------- ------ -------- P_LAST_NAME VARCHAR2INP_FIRST_NAME VARCHAR2IN

O procedimento leva a IN argumentos do tipo VARCHAR2.

Veja como você deve executar o procedimento com o comando EXECUTAR, usando o empregado Mike Whalen:

SQL> EXECUTE get_sal ( 'Whalen', 'Mike') Mike, Whalen - Renda: R $ 8300PL procedimento / SQL concluído com êxito.

Como mencionado anteriormente, a Oracle tem uma infinidade de pacotes pré-fornecidos, procedimentos e funções para gerir a base de dados. Para obter uma lista completa, vá para a seguinte seção do documentação que descreve todas as unidades do programa Oracle fornecidos.

Aqui estão alguns exemplos de programas Oracle fornecido.

NomeDescrição
DBMS_SCHEDULERGerencia o planejador banco de dados interno
DBMS_STATSReúne estatísticas sobre os usuários, objetos, sistema e wholedatabase
SYSDATEtempo atual saídas e data de sistema
UTL_MAILUtility para o e-mail com recursos, como anexos, Cc, andBcc
DBMS_METADATAFunção para puxar objeto DDL fora do banco de dados entre othertasks
DBMS_DATAPUMP APIGerencia Data Pump dentro de um programa PL / SQL

menu