为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:centos7
【CPU】:16
【问题描述】*:数组变量使用问题
create or replace type COL_LIST as varray(100) of VARCHAR2(100);
DECLARE
–变量
I INTEGER;
SCHEMA_NAME VARCHAR;
TABLE_NAME VARCHAR;
USER_NAME VARCHAR;
COL_LIST COL_LIST;
grant_sql VARCHAR;
COL_STR VARCHAR;
BEGIN
–调试语句
–给数组赋值是一个值报错数组类型不匹配,>1时功能正常
COL_LIST := COL_LIST(‘C_XM’,‘C_BH’);//正常可以执行
// COL_LIST := COL_LIST(‘C_XM’);//报错
END
在这个语句中,COL_LIST既是自定义类型名,也是变量名,建议将变量名设置与自定义类型名不一致,如下即可正常运行:
DECLARE --变量 type COL_LIST is varray(100) of VARCHAR2(100); COL_LIST_A COL_LIST; BEGIN --调试语句 --COL_LIST := COL_LIST('C_XM','C_BH');//正常可以执行 COL_LIST_A := COL_LIST('C_XM'); for i in 1..COL_LIST_A.count loop dbms_output.put_line(COL_LIST_A(i)); end loop; END; /