Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Buscar Tablas

Estas en el tema de Buscar Tablas en el foro de Oracle en Foros del Web. Hola, tengo el siguiente problema... Tengo una tabla principal que la quiero dividir en varias tablas, para hacer esto necesito validar si la tabla existe ...
  #1 (permalink)  
Antiguo 02/07/2011, 16:49
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Buscar Tablas

Hola, tengo el siguiente problema...
Tengo una tabla principal que la quiero dividir en varias tablas, para hacer esto necesito validar si la tabla existe o no, si la tabla no existe la tengo que crear y si la tabla existe solo ingreso el dato.
mi pregunta es ¿Como puedo revisar si la tabla existe?, ojalas me ayuden

Saludos, Paz!
  #2 (permalink)  
Antiguo 04/07/2011, 06:58
 
Fecha de Ingreso: junio-2010
Ubicación: Temuco, Chile
Mensajes: 20
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Buscar Tablas

select count(*) from all_tables where table_name = 'Nombre_tabla'

all_tables es una vista de todas las tablas, que el usuario con que estas conectado es dueño. Si quieres ver todas las tablas de la BD debes usar dba_tables, pero con un usuario con permisos para consultar la vista.
  #3 (permalink)  
Antiguo 04/07/2011, 18:33
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Buscar Tablas

gracias, me demore en encontrar pero eso es ^^

EDITO:
Cree la siguiente función para que me retorne si existe o no la tabla, pero me arroja un error.
Código:
CREATE OR REPLACE FUNCTION existe_tabla( vc_tabname VARCHAR2(50) )
RETURN BOOLEAN IS
	-- Variables.
	fv_existe BOOLEAN := FALSE;
	fv_num INT;
BEGIN
	SELECT COUNT(*) INTO fv_num 
					FROM user_table
					WHERE table_name = UPPER( vc_tabname )
					;
	IF ( fv_num > 0 ) THEN
		fv_existe := TRUE;
	END IF;
	RETURN fv_existe;
END existe_tabla;
El error es este:
Cita:
ERROR en línea 1: PLS-00103: Se ha encontrado el símbolo "(" cuando se esperaba uno de los siguientes:

:= . ) , @ % default character
El símbolo ":=" ha sido sustituido por "(" para continuar.
Saludos, Paz!

pd: no se burle, soy novato en SQL :D

Última edición por TitanOZ; 04/07/2011 a las 23:01
  #4 (permalink)  
Antiguo 05/07/2011, 08:33
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Buscar Tablas

Hola TitanOZ.

El problema esta en la siguiente linea:


Cita:
CREATE OR REPLACE FUNCTION existe_tabla( vc_tabname VARCHAR2(50) )
porque le estas declarando el tamaño del parametro que te ingresa VARCHAR2(50), cuando te debe quedar asi:

Cita:
CREATE OR REPLACE FUNCTION existe_tabla( vc_tabname VARCHAR2)
Eso es todo el problema que le veo a simple vista.

Saludos.
  #5 (permalink)  
Antiguo 07/07/2011, 18:31
 
Fecha de Ingreso: junio-2010
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Buscar Tablas

Edito, ya lo solucioné gracias por la ayuda.

Saludos. Paz!

Última edición por TitanOZ; 11/07/2011 a las 04:23

Etiquetas: tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:58.