Oracle - camposen oracle

 
Vista:

camposen oracle

Publicado por Angel (2 intervenciones) el 21/05/2007 11:27:14
Lo siento pero me confundí de correo.


Como se puedo corroborrar que existe un campo en una tabla determinada.

ejemplo:

SET SERVEROUTPUT ON;

CREATE OR REPLACE PROCEDURE CONSULTAS(tabla VARCHAR,campo VARCHAR) IS

SIN_CAMPO EXCEPTION;

BEGIN
existec := 0;

resultc := 'SELECT count(distinct '||campo||') FROM '||tabla;
EXECUTE IMMEDIATE resultc INTO existec;

END;

Tengo este procedimiento almacenado y si meto en campo un valor que no existe en mi base de datos me da error.

Mi pregunta es que como me puedo crear una consulta sin que me de error, para luego yo poder lanzar una excepcion.

Un saludo

Angel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:camposen oracle

Publicado por Rodolfo Reyes (445 intervenciones) el 21/05/2007 17:09:28
Deberias de hacer un query a la vista DBA_TAB_COLUMNS

algo mas o menos como:

select count(*) into cuantos
from DBA_TAB_COLUMNS
where TABLE_NAME = tabla
COLUMN_NAME = campo;

if cuantos = 0 then
--cuando es igual a 0, quiere decir que la tabla no tenia esa columna.
else
--Aqui quiere decir que si encontro la columna y que podrias hacer el query.
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar