将对象存储到 Oracle 中的 SQL 数据库中

Storing an object into a SQL database in Oracle

只是试图找到正确的 syntax/method 以输入创建 SQL 对象并将它们存储在 oracle 数据库中。 (学校项目所以它必须是可能的)

CREATE OR REPLACE TYPE Person AS OBJECT 
(id NUMBER,
 fname VARCHAR(255), 
 lname VARCHAR(255)) NOT FINAL 

CREATE OR REPLACE TYPE customer UNDER Person (

  num_purchases NUMBER,
  email VARCHAR(255)
);

CREATE TABLE Customers (
 id NUMBER,
 cust customer
);

INSERT INTO Customers(id, cust)
VALUES (1, customer(1, "John", "Doe", 44, "doezer@gmail.com"));

Returns 错误 ORA-00984: 此处不允许列

我似乎找不到任何方法来声明将值放入客户对象的特定顺序,而不是它们声明的顺序。谢谢!

您似乎插入 columns 而不是文字值。将 double quotes 替换为 single quotes.

INSERT INTO Customers(id, cust)
VALUES (1, customer(1, 'John', 'Doe', 44, 'doezer@gmail.com'));

SELECT ID, TREAT(cust AS Person).id, TREAT(cust AS Person).fname FROM Customers;

dbfiddle