Oracle 检查循环plsql中的最后一行
我在plsql中为学生和系使用FOR循环,并将系名存储在日志表中,以逗号分隔,但在最后一个系名之后,我得到了额外的“,”如何删除它Oracle 检查循环plsql中的最后一行,oracle,plsql,Oracle,Plsql,我在plsql中为学生和系使用FOR循环,并将系名存储在日志表中,以逗号分隔,但在最后一个系名之后,我得到了额外的“,”如何删除它 For i IN (select (DEPT_NAME) DeptName FROM TBL_DEPT WHERE PREV_DEPT_NAME = lPrevDeptName) LOOP lNewDept := lNewDept || i.DeptName || ','; ... ..... .... END LOOP; 最后我用新的deptname更新
For i IN
(select (DEPT_NAME) DeptName FROM TBL_DEPT WHERE PREV_DEPT_NAME =
lPrevDeptName)
LOOP
lNewDept := lNewDept || i.DeptName || ',';
...
.....
....
END LOOP;
最后我用新的deptname更新了日志表,但我得到的结果是“IT,HR,Accounts”,在日志表中,想删除额外的“after Accounts”RTRIM
IT:
lNewDept := rtrim(lNewDept, ',');
例如:
SQL> with test (lNewDept) as (select 'IT,HR,Accounts,' from dual)
2 select rtrim(lNewDept, ',') result
3 from test;
RESULT
--------------
IT,HR,Accounts
SQL>
或者像这样:
For i IN
(select (DEPT_NAME) DeptName FROM TBL_DEPT WHERE PREV_DEPT_NAME =
lPrevDeptName)
LOOP
if lNewDept is null then
lNewDept := i.DeptName
else
lNewDept := lNewDept || ',' ||i.DeptName;
end if;
...
.....
....
END LOOP;