【发布时间】:2014-10-03 13:53:18
【问题描述】:
我写了以下代码:
PROCEDURE main(errbuf OUT VARCHAR2,
retcode OUT VARCHAR2,
p_parent_request_id in NUMBER) IS
CURSOR cur_supplier_num IS
SELECT stg.rowid, stg.LEGACY_VENDOR_NUMBER, stg.SITE_IDENTIFIER
FROM XXCONV.GEAS_PA_COSTING_STG STG
WHERE RECORD_PROCESSING_STATUS IN (1, 2, 5)
AND STG.LEGACY_VENDOR_NUMBER IS NOT NULL;
TYPE update_line IS TABLE OF cur_supplier_num%ROWTYPE;
g_supplier_update update_line := update_line();
/* End of addtion 3-Oct-14*/
v_internal_request_id NUMBER;
v_org_id NUMBER;
v_vendor_id NUMBER;
v_parent_request_id NUMBER;
v_return NUMBER;
v_record_process_status NUMBER;
v_project_id NUMBER;
v_task_id NUMBER;
v_validation_var VARCHAR2(20);
v_val_user_var VARCHAR2(20);
v_val_emp_var VARCHAR2(20);
v_val_exp_type_var VARCHAR2(20);
v_val_exp_type_link_var VARCHAR2(20);
v_val_proj_name_var VARCHAR2(20);
v_val_gl_date_var VARCHAR2(20);
v_val_exp_end_var VARCHAR2(20);
v_val_exp_item_var VARCHAR2(20);
v_val_cr_code_var VARCHAR2(20);
v_val_dr_code_var VARCHAR2(20);
v_val_curr_var VARCHAR2(20);
v_r12_project_number VARCHAR2(240);
BEGIN
dynamic_log('Validation Program Start ');
BEGIN
OPEN cur_supplier_num;
LOOP
FETCH cur_supplier_num BULK COLLECT
INTO g_supplier_update LIMIT 2000;
CLOSE cur_supplier_num;
IF g_supplier_update.COUNT > 0
THEN
FORALL i IN 1..g_supplier_update.COUNT
UPDATE XXCONV.GEAS_PA_COSTING_STG stg
set R12_VENDOR_NUMBER = (
select r12_supplier_code
FROM xxconv.supplier_legacy_r12_xref xref
WHERE xref.legacy_supplier_code = g_supplier_update.Legacy_VENDOR_NUMBER
AND xref.site_identifier = g_supplier_update.site_identifier)
WHERE stg.Legacy_VENDOR_NUMBER = g_supplier_update.LEGACY_VENDOR_NUMBER;
END IF;
END LOOP;
END;
当我编译代码时,我收到错误消息:
Error(285,46): PL/SQL: ORA-00904: "G_SUPPLIER_UPDATE"."LEGACY_VENDOR_NUMBER": invalid identifier
Error(285,64): PLS-00302: component 'LEGACY_VENDOR_NUMBER' must be declared
我无法理解为什么无法识别 LEGACY_VENDOR_NUMBER。欢迎对此提供任何帮助
维韦克
【问题讨论】:
-
请高亮第 285 行 ...
-
请不要使用
SQL标记PL/SQL问题。 -
回到您的问题,您能否为游标声明中的列提供别名并尝试重新编译代码。
-
希望您在 11g 或更高版本上使用
WHERE语句的WHERE子句中的集合元素。