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

como llenar una columna con un UPDATE?

Estas en el tema de como llenar una columna con un UPDATE? en el foro de Bases de Datos General en Foros del Web. hola, estoy tratando de llenar una columna con datos con el sgte codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original UPDATE SYSTEM . CONTROL_SEGURIDAD SET perfil ...
  #1 (permalink)  
Antiguo 25/01/2012, 12:44
Avatar de ras_chalo  
Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 13 años, 10 meses
Puntos: 6
como llenar una columna con un UPDATE?

hola, estoy tratando de llenar una columna con datos con el sgte codigo

Código SQL:
Ver original
  1. UPDATE SYSTEM.CONTROL_SEGURIDAD
  2. SET perfil = (
  3. SELECT grantee FROM dba_tab_privs
  4. WHERE TABLE_NAME=tabla AND privilege=privilegio
  5.  );

resulta que me arroja el siguiente error

la subconsulta de una sola fila devuelve más de una fila

como puedo solucionarlo ?

ojala me puedan ayudar!
Saludos
  #2 (permalink)  
Antiguo 25/01/2012, 14:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: como llenar una columna con un UPDATE?

La subconsulta que pones, tal como te dice el sistema, devuelve más de un registro, y eso no se puede poner en un único campo de un único registro:
Código SQL:
Ver original
  1. SELECT grantee
  2. FROM dba_tab_privs
  3. WHERE TABLE_NAME=tabla AND privilege=privilegio
Ese UPDATE que haces:
Código SQL:
Ver original
  1. UPDATE SYSTEM.CONTROL_SEGURIDAD
  2. SET perfil = (subconsulta)
le está diciendo al sistema en el campo perfil de cada uno de los registros de la tabla CONTROL_SEGURIDAD le meta todos los registros qe devuelve esa subconsulta... Todos...
¿Se entiende el absurdo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/01/2012, 16:46
 
Fecha de Ingreso: enero-2012
Mensajes: 2
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: como llenar una columna con un UPDATE?

Claro lo mas problable es que ese filtro final que le pones

Código SQL:
Ver original
  1. WHERE TABLE_NAME=tabla AND privilege=privilegio


te este dando como resultado no un dato sino toda una lista de datos, cosa imposible de ejecutar.

Ejecuta la subconsulta y veras que no te devuelve un registro sino muchos.

Código SQL:
Ver original
  1. SELECT grantee
  2. FROM dba_tab_privs
  3. WHERE TABLE_NAME=tabla AND privilege=privilegio

Etiquetas: columna
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 01:26.