Oracle Error sql ORA-00917:缺少逗号

时间:2016-01-26 22:22:39

标签: sql oracle

我使用的是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;

2 个答案:

答案 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 而非金额作为自定义类型。