ORA-06530:对未初始化的复合材料的引用 [英] ORA-06530: Reference to uninitialized composite
本文介绍了ORA-06530:对未初始化的复合材料的引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在执行程序包时,我收到一条错误消息:
When I am executing the package I get an error message:
emp_test ORA-06530中的错误:对未初始化的复合材料的引用
error in the emp_test ORA-06530: Reference to uninitialized composite
您能解释一下如何在包中初始化对象类型吗?
Can u explain how I can initialized an object type in a package?
CREATE OR REPLACE TYPE emp_obj AS OBJECT
(
emp_no number,
salary number,
job varchar2(20)
);
CREATE OR REPLACE PACKAGE BODY emp_dummy_pk IS
PROCEDURE emp_test IS
CURSOR emp_cur IS
SELECT empno, sal, job FROM emp;
l_emp_no emp_obj;
BEGIN
FOR emp_rec IN emp_cur LOOP
l_emp_no.emp_no := emp_rec.empno;
l_emp_no.salary := emp_rec.sal;
l_emp_no.job := emp_rec.job;
BEGIN
emp_pk.emp_chk( p_emp_no => l_emp_no );
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line( 'error in the emp_pk.emp_no ' || SQLERRM );
END;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line( 'error in the emp_test ' || SQLERRM );
END;
END;
BEGIN
emp_dummy_pk.emp_test;
END;
推荐答案
您可以使用构造函数对其进行初始化:
You can initialize it using the constructor:
l_emp_no := NEW emp_obj( emp_rec.empno, emp_rec.sal, emp_rec.job );
这篇关于ORA-06530:对未初始化的复合材料的引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文