我有几个没有主键的oracle表。我无法修改此数据库设计,因为它被多个应用程序使用。添加自动增量字段也不是一种选择。
为了在实体框架中生成Edmx,我需要在表格中使用唯一字段。 所以我要做的是创建一个具有唯一键的视图。
我的表就像:
CREATE TABLE "ENTITLEMENTS"
(
"TOKEN" VARCHAR2(40 CHAR),
"ENROLLED_FUNCTION" VARCHAR2(9 CHAR)
);
有没有办法从视图中显示自动生成的标识字段。如果是这样的话?
答案 0 :(得分:3)
试试这个
Select row_number() OVER (ORDER BY TOKEN,ENROLLED_FUNCTION ),TOKEN,ENROLLED_FUNCTION From ENTITLEMENTS
答案 1 :(得分:2)
例如
CREATE TABLE DATASET ( VAL1 CHAR ( 1 CHAR ),
VAL2 VARCHAR2 ( 10 CHAR ),
VAL3 NUMBER );
INSERT INTO
DATASET ( VAL1,
VAL2,
VAL3 )
VALUES
( 'b',
'b-details',
2 );
INSERT INTO
DATASET ( VAL1,
VAL2,
VAL3 )
VALUES
( 'a',
'a-details',
1 );
INSERT INTO
DATASET ( VAL1,
VAL2,
VAL3 )
VALUES
( 'c',
'c-details',
3 );
INSERT INTO
DATASET ( VAL1,
VAL2,
VAL3 )
VALUES
( 'a',
'dup',
4 );
INSERT INTO
DATASET ( VAL1,
VAL2,
VAL3 )
VALUES
( 'c',
'c-details',
5 );
COMMIT;
CREATE VIEW TESTER ( C1,
C2,
C3 UNIQUE RELY DISABLE NOVALIDATE )
AS
SELECT
VAL1,
VAL2,
VAL3
FROM
DATASET;