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
Conteúdo
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.
Nome | Descrição |
---|---|
ANONYMOUS BLOCK | programa sem nome que é executado a partir da linha de comando |
PROCEDIMENTO | Armazenado, programa nomeado que realiza uma tarefas |
FUNÇÃO | Programa que leva entrada, age sobre ela, e produz saída |
PACOTE | Grupo de procedimentos e / ou funções nomeadas que estão relacionados por tarefa |
DESENCADEAR | Programa 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.
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 toda base de dados |
SYSDATE | hora atual saídas e data de sistema |
UTL_MAIL | Utility para o e-mail com recursos, como anexos, CC e Bcc |
DBMS_METADATA | Função para puxar objeto DDL fora do banco de dados, entre outros tarefas |
DBMS_DATAPUMP API | Gerencia Data Pump dentro de um programa PL / SQL |