Oracle 阵列工作不正常
我有一个函数,它接受1个参数abc(varchar2中的参数1) 在参数中,我将采用逗号分隔的字符串: 例如Abc('1,2,a')) DBMS输出给我Oracle 阵列工作不正常,oracle,Oracle,我有一个函数,它接受1个参数abc(varchar2中的参数1) 在参数中,我将采用逗号分隔的字符串: 例如Abc('1,2,a')) DBMS输出给我 1,2,a 而不是 1 2 A 还有什么我可以解决的吗?您正在将一个varchar2变量传递给varray,它被认为是第一个参数;因此,数组只包含一个元素(parameter1的内容)。在传递给varray之前,必须将字符串拆分为子字符串。 For my understanding your function parameter will
1,2,a
而不是
1
2
A
还有什么我可以解决的吗?您正在将一个
varchar2
变量传递给varray
,它被认为是第一个参数;因此,数组只包含一个元素(parameter1的内容)。在传递给varray之前,必须将字符串拆分为子字符串。
For my understanding your function parameter will be single value.
If you are mentioned varray, you should give format like ('1','2','a','b')
For example :-
declare
Type vartype is varray(10) of varchar2(50);
X1 vartype:=vartype ('1','2','a','b');
begin
For X in 1..X1.count loop
Dbms_output.put_line(x1(x));
End loop;
end;
/
Above query will help you to understand concepts of Varray
这是一篇文章的摘录
要将字符串拆分为子字符串,可以检查一些解决方案
For my understanding your function parameter will be single value.
If you are mentioned varray, you should give format like ('1','2','a','b')
For example :-
declare
Type vartype is varray(10) of varchar2(50);
X1 vartype:=vartype ('1','2','a','b');
begin
For X in 1..X1.count loop
Dbms_output.put_line(x1(x));
End loop;
end;
/
Above query will help you to understand concepts of Varray
DECLARE TYPE ProjectList IS VARRAY(50) OF VARCHAR2(16);
accounting_projects ProjectList;
BEGIN
accounting_projects := ProjectList('Expense Report', 'Outsourcing', 'Auditing');
END;