ORACLE PL / SQL:选择多个不同的行并限制行数

时间:2015-08-23 00:35:32

标签: database oracle oracle-sqldeveloper

目前我有桌子

CREATE TABLE itemInventory
(
itemSerial Number(4),
typeOfItemID Number(4) [this is a foreign key]
);

INSERT INTO partInventory VALUES (200, 1);
INSERT INTO partInventory VALUES (300, 2);
INSERT INTO partInventory VALUES (400, 1);

这是我目前拥有的select语句,但它返回了太多的值[-00913]

SELECT DISTINCT typeOfItemID BULK COLLECT INTO clonetbl FROM ItemInventory GROUP BY typeOfItemID;

如何限制我收到的行数,每个typeofitem ID只有1个?因此,如果我运行查询,它将只返回200,1和300,2

编辑:在我的声明中我有

TYPE cloned IS TABLE OF itemInventory%ROWTYPE;
clonetbl cloned;

1 个答案:

答案 0 :(得分:0)

Justin Cave在评论中指出,您的错误是由于<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:toa:capacity"> <SOAP-ENV:Body> <ns1:get_quota_data_response> <bucket> <bucket_id>FT_10503_DP1019</bucket_id> <name>ABC Co</name> <day> <date>2015-08-21</date> 类型与cloned列表不匹配造成的。

您的select类型需要包含所有列(cloneditemSerial列)的 完整 行。这就是typeOfItemID的含义。

但是您的itemInventory%ROWTYPE仅提供select列,导致您的错误。

在您的情况下,为了解决您的问题,您应该考虑将typeOfItemID的定义修改为:

cloned