定义了一个嵌套表类型
CREATE OR REPLACE TYPE t_DT_A_BL_RK as object
(
RYBH VARCHAR2(18),
XM VARCHAR2(30),
BM VARCHAR2(60),
XB CHAR(1),
CSRQ CHAR(8),
MZ VARCHAR2(2),
SFZH VARCHAR2(18),
JG VARCHAR2(6),
HYZK VARCHAR2(1),
WHCD CHAR(2),
XX CHAR(1),
XXMJ VARCHAR2(1),
HKSZDQX VARCHAR2(6),
LXFS VARCHAR2(40),
RYLB CHAR(1),
HKSZDXZ VARCHAR2(80),
XZZQX VARCHAR2(6),
XZZXZ VARCHAR2(80),
SMDJRQ VARCHAR2(8),
SMDJYY VARCHAR2(2),
ZXSJ CHAR(8),
RZXYY VARCHAR2(4),
XMTYIN VARCHAR2(30),
XMTYUN VARCHAR2(30),
SJLY VARCHAR2(80),
ZHGXSJ DATE
)
;CREATE OR REPLACE TYPE t_IndexBy as table of t_dt_a_bl_rk;
然后在存储过程中写:
create or replace procedure sp_sys_dt_a_bl_rk_cfry as
r_bk T_INDEXBY;
T_CHK_ARRAY T_INDEXBY; --比对数组
begin
select RYBH,
XM,
BM,
XB,
CSRQ,
MZ,
SFZH,
JG,
HYZK,
WHCD,
XX,
XXMJ,
HKSZDQX,
LXFS,
RYLB,
HKSZDXZ,
XZZQX,
XZZXZ,
SMDJRQ,
SMDJYY,
ZXSJ,
RZXYY,
XMTYIN,
XMTYUN,
SJLY,
ZHGXSJ
into r_bk.,
r_bk.XM,
r_bk.BM,
r_bk.XB,
r_bk.CSRQ,
r_bk.MZ,
r_bk.SFZH,
r_bk.JG,
r_bk.HYZK,
r_bk.WHCD,
r_bk.XX,
r_bk.XXMJ,
r_bk.HKSZDQX,
r_bk.LXFS,
r_bk.RYLB,
r_bk.HKSZDXZ,
r_bk.XZZQX,
r_bk.XZZXZ,
r_bk.SMDJRQ,
r_bk.SMDJYY,
r_bk.ZXSJ,
r_bk.RZXYY,
r_bk.XMTYIN,
r_bk.XMTYUN,
r_bk.SJLY,
r_bk.ZHGXSJ
from DT_A_BL_RK
T_CHK_ARRAY(1) := r_bk;
dbms_output.put_lint(T_CHK_ARRAY(1).rybh);
end;执行该过程为什么报错:
ORA-06530: Reference to uninitialized composite ???
CREATE OR REPLACE TYPE t_DT_A_BL_RK as object
(
RYBH VARCHAR2(18),
XM VARCHAR2(30),
BM VARCHAR2(60),
XB CHAR(1),
CSRQ CHAR(8),
MZ VARCHAR2(2),
SFZH VARCHAR2(18),
JG VARCHAR2(6),
HYZK VARCHAR2(1),
WHCD CHAR(2),
XX CHAR(1),
XXMJ VARCHAR2(1),
HKSZDQX VARCHAR2(6),
LXFS VARCHAR2(40),
RYLB CHAR(1),
HKSZDXZ VARCHAR2(80),
XZZQX VARCHAR2(6),
XZZXZ VARCHAR2(80),
SMDJRQ VARCHAR2(8),
SMDJYY VARCHAR2(2),
ZXSJ CHAR(8),
RZXYY VARCHAR2(4),
XMTYIN VARCHAR2(30),
XMTYUN VARCHAR2(30),
SJLY VARCHAR2(80),
ZHGXSJ DATE
)
;CREATE OR REPLACE TYPE t_IndexBy as table of t_dt_a_bl_rk;
然后在存储过程中写:
create or replace procedure sp_sys_dt_a_bl_rk_cfry as
r_bk T_INDEXBY;
T_CHK_ARRAY T_INDEXBY; --比对数组
begin
select RYBH,
XM,
BM,
XB,
CSRQ,
MZ,
SFZH,
JG,
HYZK,
WHCD,
XX,
XXMJ,
HKSZDQX,
LXFS,
RYLB,
HKSZDXZ,
XZZQX,
XZZXZ,
SMDJRQ,
SMDJYY,
ZXSJ,
RZXYY,
XMTYIN,
XMTYUN,
SJLY,
ZHGXSJ
into r_bk.,
r_bk.XM,
r_bk.BM,
r_bk.XB,
r_bk.CSRQ,
r_bk.MZ,
r_bk.SFZH,
r_bk.JG,
r_bk.HYZK,
r_bk.WHCD,
r_bk.XX,
r_bk.XXMJ,
r_bk.HKSZDQX,
r_bk.LXFS,
r_bk.RYLB,
r_bk.HKSZDXZ,
r_bk.XZZQX,
r_bk.XZZXZ,
r_bk.SMDJRQ,
r_bk.SMDJYY,
r_bk.ZXSJ,
r_bk.RZXYY,
r_bk.XMTYIN,
r_bk.XMTYUN,
r_bk.SJLY,
r_bk.ZHGXSJ
from DT_A_BL_RK
T_CHK_ARRAY(1) := r_bk;
dbms_output.put_lint(T_CHK_ARRAY(1).rybh);
end;执行该过程为什么报错:
ORA-06530: Reference to uninitialized composite ???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货