Como programar com pl / sql em 12c oráculo

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 realmente 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 coleta o histórico de 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 ou código de código de música que pode ser na forma de programas PL / SQL.

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

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

NomeDescrição
ANONYMOUS BLOCKprograma sem nome que é executado a partir da linha de comando
PROCEDIMENTOArmazenado, programa nomeado que realiza uma tarefas
FUNÇÃOPrograma que leva entrada, age sobre ela, e produz
saída
PACOTEGrupo de procedimentos e / ou funções nomeadas que estão relacionados por
tarefa
DESENCADEARPrograma atua sobre resultado de alguns outros fogos-acção
automaticamente
Noções básicas de estrutura de bloco PL / SQL no Oracle 12c

PL / SQL programas são construídos sobre o estrutura de bloco. Ou seja, 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, inicializada 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.

    Video: OEM 12c

  • Exceção: Esta seção define e manipula os erros que surgem durante o processamento do corpo. Se um erro for devidamente tratada, muitas vezes o programa pode continuar executando. Ou, no mínimo, a saída de uma mensagem significativa para o usuário final. Se for encontrado um erro e não é tratado 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. Isso só significa que o programa está no fim de seu processamento. E em um pacote de muitos procedimentos, a seção final separa do próximo procedimento na lista.

    Video: Oracle Enterprise Manager 12c Monitoring Plug-in for Microsoft SQL Server

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 for 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 comunicar a alteração.

O comando DESCRIBE também pode trabalhar contra programas PL / SQL. Isso pode ser útil se você não conhecer 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.

SQLgt; DESCREVER 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:

SQLgt; EXECUTAR get_sal ( `Whalen`, `Mike`) Mike, Whalen - Renda: R $ 8300PL / SQL procedimento foi concluído com êxito.

Como mencionado anteriormente, a Oracle tem uma infinidade de pacotes pré-fornecidos, procedimentos e funções para gerir o banco de dados. Para obter uma lista completa, vá para a seguinte seção do documentação que descreve todas as unidades de 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 toda
base de dados
SYSDATEhora atual saídas e data de sistema
UTL_MAILUtility para o e-mail com recursos, como anexos, CC e
Bcc
DBMS_METADATAFunção para puxar objeto DDL fora do banco de dados, entre outros
tarefas
DBMS_DATAPUMP APIGerencia Data Pump dentro de um programa PL / SQL

Publicações relacionadas