【发布时间】:2017-03-30 20:08:33
【问题描述】:
我有一个类似于下面示例的查询,我想使用连接从具有 4 列的表中动态批量收集 2 列,但我不断收到“变量不在选择列表中”的错误。我相信这是因为查询的列比表少,但我不知道如何绕过它。
DECLARE
TYPE test_table_type IS TABLE OF TEST_PRODUCTS%ROWTYPE;
BULK_COLLECTOR test_table_type;
BEGIN
EXECUTE IMMEDIATE
'SELECT tp.PRODUCT AS PRODUCT, td.ALT_DESCRIPTION AS DESCRIPTION
FROM TEST_PRODUCTS tp
JOIN ALT_DESCRIPTIONS td ON tp.ALT_DESCRIPTION_ID = td.ALT_DESCRIPTION_ID'
BULK COLLECT INTO BULK_COLLECTOR;
END;
以下是表格示例:
CREATE TABLE TEST_PRODUCTS
(
PRODUCT_ID NUMBER,
PRODUCT VARCHAR2(50),
DESCRIPTION VARCHAR2(255)
ALT_DESCRIPTION_ID NUMBER,
INVENTORY_CODE VARCHAR2(100)
);
CREATE TABLE ALT_DESCRIPTIONS
(
ALT_DESCRIPTION_ID NUMBER,
ALT_DESCRIPTION VARCHAR2(255)
);
【问题讨论】:
-
您只选择了 2 个值,并尝试将它们放入具有 5 个属性的类型中。
标签: oracle plsql oracle11g bulk-collect