Sql server 如何在Oracle中像在SQL Server中一样执行计算列
如何在oracle中使用复合列创建这样的表: SQL Server中的表定义为:Sql server 如何在Oracle中像在SQL Server中一样执行计算列,sql-server,oracle,Sql Server,Oracle,如何在oracle中使用复合列创建这样的表: SQL Server中的表定义为: CREATE TABLE [dbo].[CCtestUsingSubstring] ( [EmpNumb] INT NOT NULL, [Designation] VARCHAR(50) NOT NULL, [DOBirth] DATETIME NOT NULL, [DORetirement] AS REPLACE([Designation],'E','O') ) insert in
CREATE TABLE [dbo].[CCtestUsingSubstring] (
[EmpNumb] INT NOT NULL,
[Designation] VARCHAR(50) NOT NULL,
[DOBirth] DATETIME NOT NULL,
[DORetirement] AS REPLACE([Designation],'E','O') )
insert into [CCtestUsingSubstring] values(1,'Developer',1/10/1992)
Select * from [CCtestUsingSubstring]
CREATE TABLE [dbo].[CCtestUsingSubstring] (
[EmpNumb] INT NOT NULL,
[Designation] VARCHAR(50) NOT NULL,
[DOBirth] DATETIME NOT NULL,
[DORetirement] AS REPLACE([Designation],'E','O') )
insert into [CCtestUsingSubstring] values(1,'Developer',1/10/1992)
Select * from [CCtestUsingSubstring]
Oracle将此称为“虚拟列”:
这是在SQL中,如何在Oracle中执行相同的操作
CREATE OR REPLACE TYPE my_tab_t AS TABLE OF VARCHAR2(30);
/
CREATE TABLE nested_table (id NUMBER, col1 my_tab_t)
NESTED TABLE col1 STORE AS col1_tab;
INSERT INTO nested_table VALUES (1, my_tab_t('A'));
INSERT INTO nested_table VALUES (2, my_tab_t('B', 'C'));
INSERT INTO nested_table VALUES (3, my_tab_t('D', 'E', 'F'));
COMMIT;
CREATE TABLE CCtestUsingSubstring (
EmpNumb INT NOT NULL,
Designation VARCHAR2(50) NOT NULL,
DOBirth DATE NOT NULL,
DORetirement AS (REPLACE(Designation,'e','O')));
insert into CCtestUsingSubstring (EmpNumb, Designation, DOBirth)
values(1,'Developer',date '1992-10-01');
Select * from CCtestUsingSubstring