我使用的是Oracle SQL,我有两个表。一个名为Cars,它是一个关系表,另一个名为Or_cars,它是一个对象关系表。我试图将来自Cars表的数据插入Or_cars表,但我收到此错误。
CREATE TABLE Cars(
carid NUMBER PRIMARY KEY,
carDATE DATE,
model VARCHAR(30),
netamount NUMBER,
tax NUMBER,
totalamount NUMBER
);
CREATE TYPE AmountType AS OBJECT(
netamount NUMBER,
tax NUMBER,
totalamount NUMBER
);
CREATE TABLE Or_cars(
carid NUMBER PRIMARY KEY,
carDATE DATE,
model VARCHAR(30),
amount AmountType
);
INSERT INTO Or_cars (carid, carDATE, model, amount(netamount, tax, totalamount))
SELECT carid, carDATE, model, netamount, tax, totalamount
FROM Cars;
答案 0 :(得分:0)
在INSERT INTO
部分中,您必须列出列名称而不是值。因此对于or_cars
表,这需要:
INSERT INTO Or_cars (carid, cardate, model, amount)
由于amount
的类型为amounttype
,您需要在select
语句中提供该类型的实例,而不是列列表的一部分。要创建对象类型的新实例,您需要使用类型的名称来创建它,例如AmountType(1,2,3)
所以最后的插入语句应该是:
INSERT INTO or_cars (carid, cardate, model, amount)
SELECT carid, carDATE, model, AmountType(netamount, tax, totalamount)
FROM Cars;
答案 1 :(得分:0)
Entry.objects.bulk_create([
Entry(headline="Django 1.0 Released"),
Entry(headline="Django 1.1 Announced"),
Entry(headline="Breaking: Django is awesome")
])
您应该使用 AmountType 而非金额作为自定义类型。