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

Problema con drop table y declare

Estas en el tema de Problema con drop table y declare en el foro de Oracle en Foros del Web. hola foro: tengo el siguiente procedimiento en oracle 11g. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original CREATE OR REPLACE PROCEDURE drop_table_if_exists ( nom IN VARCHAR ( ...
  #1 (permalink)  
Antiguo 05/06/2010, 22:28
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 17 años, 1 mes
Puntos: 10
Pregunta Problema con drop table y declare

hola foro:

tengo el siguiente procedimiento en oracle 11g.

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE drop_table_if_exists(nom IN VARCHAR(60))
  2. AS
  3. BEGIN
  4.     DECLARE
  5.         tot NUMBER(1);
  6.         nom varchar2(60) := 'x_usuario';
  7.         e_error exception;
  8.     BEGIN
  9.         SELECT COUNT(*) INTO tot FROM all_tables WHERE TABLE_NAME = nom OR TABLE_NAME = UPPER(nom);
  10.         IF tot > 0 THEN
  11.             DROP TABLE nom;
  12.         END IF;
  13.     END;
  14. END;


pero me da problemas en la parte de drop table parece q la variable 'nom' no es reconocida.


incluso cuando tengo este codigo me da error, diciendome que tengo que colocar obligatoriamente un into en la consulta select del cuerpo del codigo.

Código SQL:
Ver original
  1. DECLARE
  2.     nom varchar2(40) :='x_usuario';
  3. BEGIN
  4.     SELECT nom FROM dual;
  5. END;

alguna ayuda??
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
  #2 (permalink)  
Antiguo 06/06/2010, 13:15
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Problema con drop table y declare

si no estoy mal, debes usar execute immediate.

Código SQL:
Ver original
  1. EXECUTE IMMEDIATE 'DROP TABLE ' || nom;

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: declare, drop, table
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 08:12.