我正在嘗試使用物件和嵌套表來了解它們的作業原理。
我創建了三種物件型別——地址、屬性和銷售。Address 嵌套在 Property 中,Property 嵌套在 Sale 中。然后我創建了一個銷售表 - 銷售型別。
CREATE OR REPLACE TYPE ADDRESS AS OBJECT(
line_1 VARCHAR2 (10),
town VARCHAR2 (10),
postcode VARCHAR2(10)
);
CREATE OR REPLACE TYPE PROPERTY AS OBJECT(
location ADDRESS,
description VARCHAR2(10)
);
CREATE OR REPLACE TYPE SALE AS OBJECT(
house PROPERTY,
sale_price NUMBER
);
CREATE TABLE SOLD OF SALE;
但是,當我嘗試使用下面的任何括號分組插入值時,我收到錯誤“缺少右括號或”太多值“。
INSERT INTO SOLD VALUES ((('1 MY ROAD', 'MYTOWN', 'MY123'), 'DESCRIPTION'), 100000);
INSERT INTO SOLD VALUES (('1 MY ROAD', 'MYTOWN', 'MY123', 'DESCRIPTION'), 100000);
INSERT INTO SOLD VALUES ('1 MY ROAD', 'MYTOWN', 'MY123', 'DESCRIPTION', 100000);
在這種情況下,將嵌套物件分組以避免錯誤的正確方法是什么?
uj5u.com熱心網友回復:
使用物件建構式:
INSERT INTO sold (house, sale_price)
VALUES (
property(
address('1 MY ROAD', 'MYTOWN', 'MY123'),
'DESCRIPTION'
),
100000
);
或者:
INSERT INTO sold
VALUES (
sale(
property(
address('1 MY ROAD', 'MYTOWN', 'MY123'),
'DESCRIPTION'
),
100000
)
);
注意:DESCRIPTION是 11 個字符,因此它不適合VARCHAR2(10)屬性。要么增加屬性的大小,要么減少您嘗試放入屬性的字串文字的大小。
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494508.html
