проверить последнюю строку в цикле plsql - PullRequest
0 голосов
/ 14 февраля 2019

Я использую цикл FOR в plsql для студентов и отделов и храню названия отделов в таблице журнала, разделенные запятыми, но после имени последнего отделения я получаю дополнительные символы '*, как удалить его?

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, учетные записи», в таблице журналов, хочу удалить лишние «,» после учетных записей

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Или вот так:

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;
0 голосов
/ 14 февраля 2019

RTRIM это:

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...