【问题标题】:Storing an object into a SQL database in Oracle在 Oracle 中将对象存储到 SQL 数据库中
【发布时间】:2019-12-05 02:02:26
【问题描述】:

只需尝试找到正确的语法/方法来输入创建 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"));

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

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

【问题讨论】:

    标签: sql database oracle object-oriented-database


    【解决方案1】:

    您似乎在插入 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2011-02-14
      相关资源
      最近更新 更多