将 SQL 服务器代码转换为 Oracle
Convert SQL Server code to Oracle
我尝试将 SQL 服务器代码转换为 Oracle 但失败了。
这是我在 SQL 服务器中的代码。有人可以帮忙吗?
CREATE TABLE [dbo].[DimCustomer]
(
CustomerID INT IDENTITY(12,1) NOT NULL,
CustomerAccountID VARCHAR(20),
FirstName VARCHAR(50),
LastName VARCHAR(50),
FullName AS CONCAT(FirstName,' ',LastName),
ContactNumber VARCHAR(20),
EmailAddress VARCHAR(50),
MemberShipType VARCHAR(50),
MemberShipStartDatekey INT,
MemberShipExpiryDateKey INT,
CONSTRAINT pk_customer_id PRIMARY KEY (CustomerID)
)
就像 (Oracle 12c) 一样简单:
CREATE TABLE DimCustomer
(
CustomerID INT GENERATED BY DEFAULT AS IDENTITY NOT NULL --IDENTITY
,CustomerAccountID VARCHAR2(20) --VARCHAR2
,FirstName VARCHAR2(50)
,LastName VARCHAR2(50)
,FullName AS (FirstName || ' ' ||LastName) --calculated column
,ContactNumber VARCHAR2(20)
,EmailAddress VARCHAR2(50)
,MemberShipType VARCHAR2(50)
,MemeberShipStartDatekey INT
,MemberShipExpiryDateKey INT
,CONSTRAINT pk_customer_id PRIMARY KEY (CustomerID) --comma
);
使用序列和触发器的替代方法:
CREATE SEQUENCE DimCustomer_seq START WITH 12 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER DimCustomer_seq_tr
BEFORE INSERT ON DimCustomer FOR EACH ROW
BEGIN
SELECT DimCustomer_seq.NEXTVAL INTO :NEW.CustomerID FROM DUAL;
END;
我尝试将 SQL 服务器代码转换为 Oracle 但失败了。
这是我在 SQL 服务器中的代码。有人可以帮忙吗?
CREATE TABLE [dbo].[DimCustomer]
(
CustomerID INT IDENTITY(12,1) NOT NULL,
CustomerAccountID VARCHAR(20),
FirstName VARCHAR(50),
LastName VARCHAR(50),
FullName AS CONCAT(FirstName,' ',LastName),
ContactNumber VARCHAR(20),
EmailAddress VARCHAR(50),
MemberShipType VARCHAR(50),
MemberShipStartDatekey INT,
MemberShipExpiryDateKey INT,
CONSTRAINT pk_customer_id PRIMARY KEY (CustomerID)
)
就像 (Oracle 12c) 一样简单:
CREATE TABLE DimCustomer
(
CustomerID INT GENERATED BY DEFAULT AS IDENTITY NOT NULL --IDENTITY
,CustomerAccountID VARCHAR2(20) --VARCHAR2
,FirstName VARCHAR2(50)
,LastName VARCHAR2(50)
,FullName AS (FirstName || ' ' ||LastName) --calculated column
,ContactNumber VARCHAR2(20)
,EmailAddress VARCHAR2(50)
,MemberShipType VARCHAR2(50)
,MemeberShipStartDatekey INT
,MemberShipExpiryDateKey INT
,CONSTRAINT pk_customer_id PRIMARY KEY (CustomerID) --comma
);
使用序列和触发器的替代方法:
CREATE SEQUENCE DimCustomer_seq START WITH 12 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER DimCustomer_seq_tr
BEFORE INSERT ON DimCustomer FOR EACH ROW
BEGIN
SELECT DimCustomer_seq.NEXTVAL INTO :NEW.CustomerID FROM DUAL;
END;