建议写成带输入参数的游标;
...
for each row
DECLARE
CURSOR radacct_cursor(p_username varchar2) IS
SELECT SUM(acctsessiontime) sum_acctsessiontime
FROM radacct
WHERE username = p_username;
CURSOR radreply_cursor(p_username varchar2) is
SELECT value
FROM radreply
WHERE attribute ='acctsessiontime'
and username = p_username; rad_val number(12,0);;
radreply_value_NUM number(12,0);
BEGIN
OPEN radacct_cursor(:new.username);
fetch radacct_cursor into rad_val; open radreply_cursor(:new.username);
fetch radreply_cursor into radreply_val; /*此处略,不过你在此处缺少循环控制语句,radreply_cursor%FOUND这样的语句常用作,如,loop
FETCH cur_emp INTO r_emp;
EXIT WHEN c_emp%NOTFOUND;
...........
END LOOP;
close cur_emp;
另外,radacct_cursor%ROWTYPE;主要用作游标取多个字段时用,此处可以不用*/
close radacct_cursor;
close radreply_cursor;
END;
...
for each row
DECLARE
CURSOR radacct_cursor(p_username varchar2) IS
SELECT SUM(acctsessiontime) sum_acctsessiontime
FROM radacct
WHERE username = p_username;
CURSOR radreply_cursor(p_username varchar2) is
SELECT value
FROM radreply
WHERE attribute ='acctsessiontime'
and username = p_username; rad_val number(12,0);;
radreply_value_NUM number(12,0);
BEGIN
OPEN radacct_cursor(:new.username);
fetch radacct_cursor into rad_val; open radreply_cursor(:new.username);
fetch radreply_cursor into radreply_val; /*此处略,不过你在此处缺少循环控制语句,radreply_cursor%FOUND这样的语句常用作,如,loop
FETCH cur_emp INTO r_emp;
EXIT WHEN c_emp%NOTFOUND;
...........
END LOOP;
close cur_emp;
另外,radacct_cursor%ROWTYPE;主要用作游标取多个字段时用,此处可以不用*/
close radacct_cursor;
close radreply_cursor;
END;
谁叫你把关键的create ...on ....那几行语句给截掉了,呵呵