2

有没有办法在 Oracle 11gR2 中创建具有两个名称的单列

我需要这个的原因是在可行的情况下向后兼容:

create table test1 (col1 varchar2(10), col2 [some ref to col1]);

insert into test1 values ('test_value');

进而

SQL> select col1 from test1;
test_value

SQL> select col2 from test1;
test_value

SQL Server上似乎有这样的方式,我正在寻找与之等效的 Oracle。

想法?

4

1 回答 1

3

您可以创建一个VIRTUAL COLUMN

CREATE TABLE test1 (
  col1 VARCHAR2(10),
  col2 VARCHAR2(10) GENERATED ALWAYS AS (col1 || '')
);

INSERT INTO test1 (col1) VALUES ('test_value');
COMMIT;

SELECT * FROM test1;

COL1       COL2     
---------- ----------
test_value test_value 

但是,虚拟列不能由 DML 操作。在此处阅读更多信息:Oracle Base - 虚拟列

于 2013-10-24T20:40:04.953 回答