将对象存储到 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;
只是试图找到正确的 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;