I get this error on RefreshRecord
ORA-01445: cannot select ROWID from a join view without a key-preserved table
on this view
CREATE OR REPLACE VIEW VWLOGICALDISCREP
AS select
cl.CELLID,
cl.EKEY,
cl.FLAGNAME,
cl.NKEY,
cl.CKEY,
cl.NODENAME,
cl.DATETIME, cl.DATEDUE,
decode(cl.dstype,1,'SCHEDULED',0,'UNHANDLED',2,'EXECUTED') dstype,
em.entityname,
cl.RESOLVEDBY,
rowidtochar(cl.rowid) uniquefield,
cl.SCHEDULEDBY,
cl.DSOURCE,
cl.TRACKFILENAME,
cl.rowid id,
clflag.DESCRIPTION
from CELLLOGICALNECD cl, entitymap em, CELLLOGICALFLAGS clflag, nodemap np
where cl.ekey = em.ekey
and cl.FLAGNAME=clflag.FLAGNAME
and cl.nkey = np.nkey
and np.recycle = 0
USING THIS TABLES STRUCTURES
CREATE TABLE CELLLOGICALNECD (
CKEY NUMBER (20),
NKEY NUMBER (20) NOT NULL,
EKEY NUMBER (20) NOT NULL,
CELLID VARCHAR2 (8) NOT NULL,
NODENAME VARCHAR2 (50),
FLAGNAME VARCHAR2 (20) NOT NULL,
DATETIME DATE DEFAULT sysdate,
DATEDUE DATE DEFAULT SYSDATE+5,
DSTYPE NUMBER (2) DEFAULT 0,
RESOLVEDBY VARCHAR2 (200),
SCHEDULEDBY VARCHAR2 (100),
DSOURCE VARCHAR2 (20),
TRACKFILENAME VARCHAR2 (255),
CONSTRAINT CELLLOGICALNECD_U0
PRIMARY KEY ( CELLID, EKEY, FLAGNAME, NKEY ))
CREATE TABLE CELLLOGICALFLAGS (
CLFKEY NUMBER (20) NOT NULL,
EKEY NUMBER (20),
FLAGNAME VARCHAR2 (20),
FLAGTYPE NUMBER (2),
DESCRIPTION VARCHAR2 (100),
DATETIME DATE DEFAULT sysdate,
CONSTRAINT CELLLOGICALFLAGS_PK
PRIMARY KEY ( CLFKEY ))
CREATE TABLE ENTITYMAP (
EKEY NUMBER (19) NOT NULL,
ENTITYNAME VARCHAR2 (50) NOT NULL,
UNIQUE (EKEY),
UNIQUE (ENTITYNAME) USING INDEX
TABLESPACE AIDATASAFE_INDEX PCTFREE 10
STORAGE ( INITIAL 24K NEXT 24K PCTINCREASE 0 ),
CONSTRAINT ENTITYMAP_PK
PRIMARY KEY ( EKEY, ENTITYNAME ))
CREATE TABLE NODEMAP (
NKEY NUMBER (19) NOT NULL,
EKEY NUMBER (19) NOT NULL,
NODENAME VARCHAR2 (50) NOT NULL,
RECYCLE NUMBER (1) DEFAULT 0,
CONSTRAINT NODEMAP_UK
UNIQUE (EKEY, NODENAME),
CONSTRAINT NODEMAP_UK1
UNIQUE (NODENAME),
UNIQUE (NKEY) USING INDEX
TABLESPACE AIDATASAFE_INDEX PCTFREE 10
STORAGE ( INITIAL 344K NEXT 168K PCTINCREASE 0 ),
CONSTRAINT NODEMAP_PK
PRIMARY KEY ( NODENAME, NKEY, EKEY ))
ORA-01445: cannot select ROWID from a join view without a key-preserved table
on this view
CREATE OR REPLACE VIEW VWLOGICALDISCREP
AS select
cl.CELLID,
cl.EKEY,
cl.FLAGNAME,
cl.NKEY,
cl.CKEY,
cl.NODENAME,
cl.DATETIME, cl.DATEDUE,
decode(cl.dstype,1,'SCHEDULED',0,'UNHANDLED',2,'EXECUTED') dstype,
em.entityname,
cl.RESOLVEDBY,
rowidtochar(cl.rowid) uniquefield,
cl.SCHEDULEDBY,
cl.DSOURCE,
cl.TRACKFILENAME,
cl.rowid id,
clflag.DESCRIPTION
from CELLLOGICALNECD cl, entitymap em, CELLLOGICALFLAGS clflag, nodemap np
where cl.ekey = em.ekey
and cl.FLAGNAME=clflag.FLAGNAME
and cl.nkey = np.nkey
and np.recycle = 0
USING THIS TABLES STRUCTURES
CREATE TABLE CELLLOGICALNECD (
CKEY NUMBER (20),
NKEY NUMBER (20) NOT NULL,
EKEY NUMBER (20) NOT NULL,
CELLID VARCHAR2 (8) NOT NULL,
NODENAME VARCHAR2 (50),
FLAGNAME VARCHAR2 (20) NOT NULL,
DATETIME DATE DEFAULT sysdate,
DATEDUE DATE DEFAULT SYSDATE+5,
DSTYPE NUMBER (2) DEFAULT 0,
RESOLVEDBY VARCHAR2 (200),
SCHEDULEDBY VARCHAR2 (100),
DSOURCE VARCHAR2 (20),
TRACKFILENAME VARCHAR2 (255),
CONSTRAINT CELLLOGICALNECD_U0
PRIMARY KEY ( CELLID, EKEY, FLAGNAME, NKEY ))
CREATE TABLE CELLLOGICALFLAGS (
CLFKEY NUMBER (20) NOT NULL,
EKEY NUMBER (20),
FLAGNAME VARCHAR2 (20),
FLAGTYPE NUMBER (2),
DESCRIPTION VARCHAR2 (100),
DATETIME DATE DEFAULT sysdate,
CONSTRAINT CELLLOGICALFLAGS_PK
PRIMARY KEY ( CLFKEY ))
CREATE TABLE ENTITYMAP (
EKEY NUMBER (19) NOT NULL,
ENTITYNAME VARCHAR2 (50) NOT NULL,
UNIQUE (EKEY),
UNIQUE (ENTITYNAME) USING INDEX
TABLESPACE AIDATASAFE_INDEX PCTFREE 10
STORAGE ( INITIAL 24K NEXT 24K PCTINCREASE 0 ),
CONSTRAINT ENTITYMAP_PK
PRIMARY KEY ( EKEY, ENTITYNAME ))
CREATE TABLE NODEMAP (
NKEY NUMBER (19) NOT NULL,
EKEY NUMBER (19) NOT NULL,
NODENAME VARCHAR2 (50) NOT NULL,
RECYCLE NUMBER (1) DEFAULT 0,
CONSTRAINT NODEMAP_UK
UNIQUE (EKEY, NODENAME),
CONSTRAINT NODEMAP_UK1
UNIQUE (NODENAME),
UNIQUE (NKEY) USING INDEX
TABLESPACE AIDATASAFE_INDEX PCTFREE 10
STORAGE ( INITIAL 344K NEXT 168K PCTINCREASE 0 ),
CONSTRAINT NODEMAP_PK
PRIMARY KEY ( NODENAME, NKEY, EKEY ))