Oque é PL/SQL?

PL/SQL é uma linguagem de programação, desenvolvida pela Oracle, como extensão da linguagem SQL. É uma linguagem procedural, estruturada, de alto desempenho, fácil leitura e totalmente integrada ao SGBDR Oracle. Diferentemente de outras linguagens de programação, como JAVA, Python e C#, PL/SQL não é uma linguagem de uso geral. Ela foi desenvolvida exclusivamente para automação de tarefas em bancos de dados Oracle. Não há compiladores ou interpretadores PL/SQL disponíveis fora do SGBDR Oracle.

Outros SGBDR oferecem suas próprias linguagens de programação integradas, com muitas características similares à PL/SQL. Por exemplo, a linguagem TRANSACT SQL (T-SQL) é a linguagem de programação desenvolvida pela Microsoft para seu SGBDR SQL Server. No entanto, dificilmente códigos em PL/SQL rodarão em outros SGBDR sem que sejam necessárias adaptações.

Como toda linguagem de programação, PL/SQL possui sua própria estrutura e comandos, desenvolvidos especificamente para a automação de tarefas e manipulação de objetos presentes nos esquemas relacionais suportados pelo SGBDR Oracle.

Programas PL/SQL podem ser submetidos ao SGBDR Oracle através de front end interativos/CLI11 (SQLPlus), GUI/IDE22 (SQL Developer) ou por programas aplicativos através das API (Aplication Program Interface) disponíveis. Tanto o SQLPlus quanto o SQL Developer estão disponíveis juntamente com o SGBDR Oracle.

Primeiros passos: Preparando o ambiente de desenvolvimento

O SQL Developer é uma interface gráfica que permite utilizar todas as funcionalidades do SGBDR Oracle (Figura 1). Esta ferramenta será utilizada na apresentação dos exemplos ao longo do curso.

Figura 1 – SQL Developer

Os principais elementos do SQL Developer são: (1) Conexões, (2) Editor (Worksheet), (3) Resultado de Consultas (Script Output e Query Result) e (4) DBMS Output (esta janela provavelmente não estará visível). Antes de mais nada, é preciso estabelecer uma conexão com o SGBDR Oracle. Se não houver qualquer conexão, clique no sinal de ‘+’ no canto superior esquerdo do painel de conexões e forneça os parâmetros da conexão (Figura 2).

É possível se conectar ou desconectar do servidor clicando com o botão direito sobre o nome da conexão. Uma vez estabelecida a conexão, se tem acesso a todos os objetos do esquema padrão (no SGBDR Oracle, o esquema padrão tem o nome igual ao login do usuário).

Submeta o comando SELECT ‘Hello, world!’ FROM DUAL; ao servidor. Digite o comando no editor e clique na seta verde no canto superior direito do editor. O texto Hello, world! deverá aparecer na aba Query Result. A aba Script Output é utilizada para exibir mensagens resultantes da execução de consultas.

Habilite agora a janela DBMS Output. No menu do programa, clique em View > DBMS Output, depois no ‘+’ e selecione uma conexão ativa. Agora, submeta o comando EXEC DBMS_OUTPUT.PUT_LINE(‘Hello, world!’); ao servidor (não se preocupe com o seu significado). A mensagem deverá aparecer na janela DBMS Output.

Figura 2 – Criação de uma nova conexão

No canto superior esquerdo do editor, há dois botões que possuem funções similares: o botão de execução de comando (▶) e o botão de excução de script, que fica à sua direita. O primeiro executa os comandos assinalados no editor (ou o comando sob o cursor, caso não haja nenhum texto assinalado) enquanto que o segundo executa todos os comandos do editor. Outra funcionalidade importante do editor é a exibição de número de linha. Para ativá-la, clique com o botão direito do mouse na faixa vertical à esquerda, bem debaixo do ▶, e selecione Toggle Line Numbers. Todas as mensagens de erro enviadas pelo SGBDR fazem referência ao número da linha no editor. Para tornar esta característica permanente, selecione Tools > Preferences > Code Editor > Line Gutter e marque a opção Show Line Numbers.

Outro botão importante, presente em várias janelas, é o apagador (borracha vermelha na ponta do lápis). Ele apaga o conteúdo da respectiva janela. Para desfazer a ação, digite CTRL+Z (undo).

Explorando objetosApós o estabelecimento de uma conexão, todos os objetos presentes no esquema padrão ficam disponíveis para o usuário. Para ter acesso a eles, clique no ‘+’ à esquerda do nome da conexão ativa. Uma estrutura semelhante a um explorador de arquivos é exibida com um ‘diretório’ para cada tipo de objeto (Figura 3).

Figura 3 – Explorador de Objetos