Index Json

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; 
select *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 na tabela

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;
											
Criando a função
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;
													
Criando a procedure para exportar para 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 o arquivo