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
Menu
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.
Nome | Descrição |
---|---|
ANONYMOUS BLOCO | programa sem nome que é executado a partir da linha de comando |
PROCEDIMENTO | Armazenado, programa denominado que executa uma tarefas |
FUNÇÃO | Programa que leva entrada, age sobre ela, e producesoutput |
PACOTE | Grupo de procedimentos e / ou funções nomeadas as quais estão relacionadas bytask |
GATILHO | Programa 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.
Nome | Descrição |
---|---|
DBMS_SCHEDULER | Gerencia o planejador banco de dados interno |
DBMS_STATS | Reúne estatísticas sobre os usuários, objetos, sistema e wholedatabase |
SYSDATE | tempo atual saídas e data de sistema |
UTL_MAIL | Utility para o e-mail com recursos, como anexos, Cc, andBcc |
DBMS_METADATA | Função para puxar objeto DDL fora do banco de dados entre othertasks |
DBMS_DATAPUMP API | Gerencia Data Pump dentro de um programa PL / SQL |