Introdução à Linguagem PL/SQL

CONECTANDO COMO SYSTEM

	conn system/coti    

Criar tabela

	create table texto( id number(5) primary key, texto1 varchar2(4000) );

INSERÇÃO DE DADOS E FORMATAÇÃO DE COLUNAS

	insert into texto values(1, 'Oracle o melhor banco de dados do mundo');
	insert into texto values(2, 'Oracle o banco de dados PLSQL');
	commit;

	set linesize 400; 
	column texto1 format a40; 
	elect *from texto;

CRIANDO UM INDICE PARA PESQUISAS

	create index texto_idx on texto(texto1) indextype is
	ctxsys.context;

PESQUISANDO PELO NOME ORACLE

	select id, texto1 from texto where instr(texto1, 'oracle') > 0;
	select id, texto1 from texto where texto1 like '%melhor%';
	select id, texto1 from texto where contains (texto1, 'near((oracle, melhor),1)')>0;

FUNCTION PARA RESGATAR REGISTROS

Criando Tabela
	create table funcionario( id number(5) primary key, nome varchar(50), salario number(15,2), setor varchar(15) );

INSERÇÃO DE DADOS

	insert into funcionario values (100, 'fadinha', 1000, 'inf'); 
	insert into funcionario values (101, 'fadinha ref', 2000, 'inf'); 
	insert into funcionario values (102, 'jhon', 3000, 'inf'); 
	insert into funcionario values (103, 'marcio', 4000, 'eng'); 
	insert into funcionario values (104, 'diego', 6000, 'inf'); 
	insert into funcionario values (105, 'lu', 5000, 'des'); 
	insert into funcionario values (106, 'marcia', 3000, 'des'); 
	commit;
	select * from funcionario;

FUNCTION

	create or replace function getRegistro(numero in number) 
	return sys_refcursor as 
	linha sys_refcursor; 
	reg_linha funcionario%rowtype; 
	registro sys_refcursor; 
	begin open linha for select * from funcionario where id>numero; 
	return linha; 
	end; 
	/
	select getRegistro(103) from dual;

CRIAR PROCEDURE PARA EXPORTAR JSON

	create or replace procedure getJson
	 as linha sys_refcursor; 
	 registro funcionario%rowtype; 
	 begin open linha for select * from funcionario; 
	 loop
	 fetch linha into registro; 
	 exit when linha%notfound; 
	 dbms_output.put_line('{' || chr(34) || 'nome' || chr(34) ||':'||
	 chr(34) || registro.nome || chr(34) || ',' || chr(34) || 'salario' ||
	 chr(34) || ':' || registro.salario ||'}'); 
	 end loop;
	 close linha; 
	 end; 
	/

CRIAR PROCEDURE PARA EXPORTAR JSON

	create or replace procedure getJson
	 as linha sys_refcursor; 
	 registro funcionario%rowtype; 
	 begin open linha for select * from funcionario; 
	 loop
	 fetch linha into registro; 
	 exit when linha%notfound; 
	 dbms_output.put_line('{' || chr(34) || 'nome' || chr(34) ||':'||
	 chr(34) || registro.nome || chr(34) || ',' || chr(34) || 'salario' ||
	 chr(34) || ':' || registro.salario ||'}'); 
	 end loop;
	 close linha; 
	 end; 
	/

ATIVAR O SPOOL E EXECUTAR A PROCEDURE

	set serveroutput on size 10000; 
	spool 'c:/temp3/aula7a.json'; 
	exec getJson; 
	spool off;

LOCAL DE EXPORTAÇÃO

ABRIR ARQUIVO