下面这个函数有错,我在sql plus的执行无法通过
错在哪? 谢谢
CREATE OR REPLACE FUNCTION fun_print(str_val IN VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
RETURN str_var || '...';
END fun_print;
下面这个复杂一点,也是个朋友写给我的,也没法执行,麻烦各位帮忙看看create or replace function f_GetCol_Sum(str_Val in varchar2)
return varchar2
is
result_value varchar2(32767);
cursor c_GetCol_Sum is
select CLASSNUM,STUDENTNUM from T_CLASS where CLASSNUM = str_Val;
begin
Result :='';
for cGetCol_Sum in c_GetCol_Sum loop
result_value := result_value || cGetCol_Sum.学号 || ',';
end loop;
return result_value;
end f_GetCol_Sum;
错在哪? 谢谢
CREATE OR REPLACE FUNCTION fun_print(str_val IN VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
RETURN str_var || '...';
END fun_print;
下面这个复杂一点,也是个朋友写给我的,也没法执行,麻烦各位帮忙看看create or replace function f_GetCol_Sum(str_Val in varchar2)
return varchar2
is
result_value varchar2(32767);
cursor c_GetCol_Sum is
select CLASSNUM,STUDENTNUM from T_CLASS where CLASSNUM = str_Val;
begin
Result :='';
for cGetCol_Sum in c_GetCol_Sum loop
result_value := result_value || cGetCol_Sum.学号 || ',';
end loop;
return result_value;
end f_GetCol_Sum;
RETURN str_var ¦ ¦ '...'; --没有 str_var 这个变量,当然错了
试下
create or replace function f_GetCol_Sum(str_Val in varchar2)
return varchar2
is
result_value varchar2(2000);--最大只能2000
sReturn T_CLASS%rowtype;
type cursor_type is ref cursor;
c1 cursor_type;
begin
Result :='';
open c1 for 'select CLASSNUM,STUDENTNUM from T_CLASS where CLASSNUM = str_Val';
loop
fetch c_GetCol_Sum into sReturn;
exit when c_GetCol_Sum%notfound;
result_value := result_value ¦ ¦ sReturn.CLASSNUM ¦ ¦ ',';
end loop;
return result_value;
end f_GetCol_Sum;