PessoALL...
Estou criando um script que tem por objetivo me retornar os nomes e as
quantidades de objetos de um determinado schema... No entanto ele apresenta um
erro, quando da execução do script....
O script é como segue:
DECLARE
v_otype VARCHAR2(20) := '&tipo';
v_oname VARCHAR2(30);
v_qtde NUMBER;
v_ver BOOLEAN;
v_fim EXCEPTIONS;
CURSOR c_rel_objetos IS
SELECT object_type, object_name
FROM user_objects
WHERE object_type = v_otype;
CURSOR c_qtde_objetos IS
SELECT COUNT(object_type)
FROM user_objects
WHERE object_type = v_otype;
BEGIN
SELECT COUNT(object_type) INTO v_qtde
FROM user_objects
WHERE object_type = v_otype;
IF v_qtde = 0
THEN v_ver := FALSE;
RAISE v_fim;
ELSIF v_qtde > 0
THEN v_ver := TRUE;
END IF;
OPEN c_rel_objetos;
LOOP
FETCH c_rel_objetos INTO v_otype, v_oname;
EXIT WHEN c_rel_objetos%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_otype||' - '||v_oname);
END LOOP;
CLOSE c_rel_objetos;
OPEN c_qtde_objetos;
FETCH c_qtde_objetos INTO v_qtde;
DBMS_OUTPUT.PUT_LINE('SÃO '||v_qtde||' '||v_otype||'(S) NO TOTAL!');
CLOSE c_qtde_objetos;
EXCEPTION
WHEN v_qtde = 0
THEN v_ver := FALSE;
DBMS_OUTPUT.PUT_LINE('NÃO EXISTE OBJETOS DESTE TIPO NO SEU DOMÍNIO!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
Como se pode perceber, quando da execução do script, é passado um parâmetro
(que é o tipo de objeto que eu quero) e ele retorna os nomes dos objetos que
são daquele tipo específico e ainda me dá o total de objetos daquele tipo
específico...
No entanto, quando ao rodar este script ele me retorna o seguinte erro,
utilizando como exemplo o parâmetro PROCEDURE:
Informe o valor para tipo: PROCEDURE
antigo 2: v_otype VARCHAR2(20) := '&tipo';
novo 2: v_otype VARCHAR2(20) := 'PROCEDURE';
WHEN v_qtde = 0
*
ERRO na linha 54:
ORA-06550: linha 54, coluna 13:
PLS-00103: Encontrado o símbolo "=" quando um dos seguintes símbolos era
esperado:
. then or
Quem puder ajudar, agradeço!
Atenciosamente,
Matheus Malta
[As partes desta mensagem que não continham texto foram removidas]