对于作业,建议是使用馆藏。简单地说我需要在几个子串中切断一个字符串,颠倒这些字符串的顺序并将它们放在一起。
忽略了实际代码,因为它在声明部分崩溃了。 继续收到错误: stringlist1不是程序或未定义 因此,出于某种原因,我尝试分配给stringlist1的类型并不是这样做的。 你们知道为什么会这样吗?如果这是不可修复的,那么除了为集合中的每一行创建一个变量之外,什么是一个简洁的解决方法?
我尝试的事情:
Create or replace FUNCTION TEST (p_number varchar2)
RETURN varchar2
IS
stringlist1 dbms_utility.name_array;
stringlist2 dbms_utility.name_array;
BEGIN
stringlist1('test');
stringlist2('test');
dbms.output.put_line(stringlist1(1));
return stringlist1(1);
END;
答案 0 :(得分:1)
可以将字符串添加到stringlist1(1) := 'test';
因此,您的代码将在更正后进行编译,如
CREATE OR REPLACE FUNCTION TEST (p_number VARCHAR2)
RETURN VARCHAR2
IS
stringlist1 DBMS_UTILITY.name_array;
stringlist2 DBMS_UTILITY.name_array;
BEGIN
stringlist1(1) := 'test';
stringlist2(1) := 'test';
dbms_output.put_line (stringlist1 (1));
RETURN stringlist1 (1);
END;
PS:包名称不是dmbs.output
,正确的是dbms_output
。