
24/01/2012, 15:30
|
 | | | Fecha de Ingreso: octubre-2007 Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 3 meses Puntos: 85 | |
Respuesta: esta bien mi insert? Error SQL: ORA-00947 Cita: INSERT INTO "SYSTEM"."CONTROL_PERMISOS" (
usuario,
rol,
vigencia,
creado,
expira)
VALUES (
grantee,
granted_role,
(SELECT created FROM dba_users),
(SELECT expiry_date FROM dba_users)
)
FROM dba_role_privs; El problema lo tienes porque las subconsultas sobre la dba_users devuelven más de un registro cada registro de la dba_role_privs, tendrías que utilizar la sintaxis:
Código:
insert into system.control_permisos (
usuario,
rol,
vigencia,
creado,
expira)
select
dba_role_privs.grantee,
dba_role_privs.granted_role,
dba_users.created,
dba_users.expiry_date
from dba_role_privs, dba_users
where
dba_role_privs.grantee = dba_users.username;
Finalmente, no tengo claro si esto que planteas es solo un ejemplo o una necesidad real, en caso de lo segundo, puedes crear una vista para evitar tener una tabla y cargar los datos:
Código:
create or replace view system.control_permisos
as
select
dba_role_privs.grantee,
dba_role_privs.granted_role,
dba_users.created,
dba_users.expiry_date
from dba_role_privs, dba_users
where
dba_role_privs.grantee = dba_users.username;
Saludos |