Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sys_refcursor - добавление условия при конкатенации / 16 сообщений из 16, страница 1 из 1
13.01.2021, 22:06
    #40035585
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
Набросал

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
CREATE OR REPLACE
PROCEDURE SP_OUT_RefCur_PARAM(
    C_RESULT OUT SYS_REFCURSOR
) IS
BEGIN
    OPEN C_RESULT FOR 
        Select country_name, region_id from COUNTRIES;
END SP_OUT_RefCur_PARAM;

VARCHAR2(40 BYTE)
NUMBER
---
DECLARE
 REFCUR SYS_REFCURSOR;
 TYPE RECORDTYPE IS RECORD (COL1 VARCHAR2(40 BYTE), COL2 NUMBER);
 OUTTABLE RECORDTYPE;
 X_XSL VARCHAR2(1000);
BEGIN
    SP_OUT_RefCur_PARAM(REFCUR);
    LOOP
     FETCH REFCUR INTO OUTTABLE;
     EXIT WHEN REFCUR%NOTFOUND;
     -- X_XSL := '<td>' || OUTTABLE.COL1 || '</td>' || chr(10)|| '<td>' OUTTABLE.COL2 || '</td>';
     X_XSL :=  '<tr><td>' || OUTTABLE.COL1 || '</td><br>' || '<td>' || OUTTABLE.COL2 || '</td></tr>';
      dbms_output.put_line(X_XSL);
    END LOOP;
    --dbms_output.put_line(X_XSL);
  CLOSE REFCUR;  
END;



Как сделать так если OUTTABLE.COL1 is null то нужно вместо тега <td> добавить тег <td bgcolor="#999900"> а если не null оставить тег '<td>'
...
Рейтинг: 0 / 0
13.01.2021, 22:49
    #40035594
ASNexus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
x17.mstu,

Код: plsql
1.
X_XSL :=  '<tr><td' || NVL2(OUTTABLE.COL1, null, ' bgcolor="#999900"') || '>' || OUTTABLE.COL1 || '</td><br>' || '<td>' || OUTTABLE.COL2 || '</td></tr>';
...
Рейтинг: 0 / 0
14.01.2021, 09:00
    #40035655
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
ASNexus
Код: plsql
1.
NVL2

Ну-ну.
...
Рейтинг: 0 / 0
14.01.2021, 09:29
    #40035659
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
x17.mstu

Набросал


...:='<tr>'||case when OUTTABLE.COL1 is nulll then '<td bgcolor="#999900">' else '<td>' end || ...

ps
If OUTTABLE.COL1 is nulll ...

....
stax
...
Рейтинг: 0 / 0
14.01.2021, 10:48
    #40035679
ASNexus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
Elic
ASNexus
Код: plsql
1.
NVL2

Ну-ну.

А что не так?
...
Рейтинг: 0 / 0
14.01.2021, 10:53
    #40035680
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
ASNexus,

в древних версиях identifier 'NVL2' must be declared

.....
stax
...
Рейтинг: 0 / 0
14.01.2021, 11:03
    #40035685
ASNexus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
Stax
ASNexus,

в древних версиях identifier 'NVL2' must be declared

.....
stax


А, так версия в вопросе не указана. В 8i оно уже было, а неужели кому-то сейчас актуально 8.0 или ранее?
...
Рейтинг: 0 / 0
14.01.2021, 11:08
    #40035689
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
ASNexus
Stax
ASNexus,

в древних версиях identifier 'NVL2' must be declared

.....
stax


А, так версия в вопросе не указана. В 8i оно уже было, а неужели кому-то сейчас актуально 8.0 или ранее?


странно

у меня 11-я и еще нет

....
stax
...
Рейтинг: 0 / 0
14.01.2021, 11:12
    #40035690
ASNexus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
Stax
ASNexus
пропущено...


А, так версия в вопросе не указана. В 8i оно уже было, а неужели кому-то сейчас актуально 8.0 или ранее?


странно

у меня 11-я и еще нет

....
stax


БД 11-й под рукой нет, но в Oracle® Database SQL Language Reference 11g Release 2 (11.2) оно описано. А по памяти, я конечно могу ошибаться, но в 9i вроде уже сам пользовался (про 8i лично не помню, инфу, что NVL2 появилась именно в 8i нашел в гугле).
...
Рейтинг: 0 / 0
14.01.2021, 11:19
    #40035692
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
ASNexus

но в 9i вроде уже сам пользовался


Странно

хоть какая-то версия под рукой у Вас есть?

.....
stax
...
Рейтинг: 0 / 0
14.01.2021, 11:19
    #40035693
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
ASNexus,

А давно nvl2 в pl/sql работает?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> declare
  2      n number;
  3  begin
  4      n := nvl2(1,2,0);
  5  end;
  6  /
    n := nvl2(1,2,0);
         *
ERROR at line 4:
ORA-06550: line 4, column 10:
PLS-00201: identifier 'NVL2' must be declared
ORA-06550: line 4, column 5:
PL/SQL: Statement ignored


SQL> select nvl2(1,2,0) n from dual;

         N
----------
         2
...
Рейтинг: 0 / 0
14.01.2021, 11:27
    #40035698
ASNexus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
env
ASNexus,

А давно nvl2 в pl/sql работает?


Посыпаю голову пеплом. Да, поторопился с ответом, а потом не мог сообразить в чём здесь мой косяк.
Да, использовал NVL2, так-же как и DECODE в PL/SQL в виде SELECT ... INTO ... FROM DUAL, что само собой с появлением CASE потеряло смысл (но в памяти осталось).
...
Рейтинг: 0 / 0
14.01.2021, 11:29
    #40035702
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
А кто подскажет как сделать тот же самый вывод но если Внимание имена колонок - например месяца задается динамически. Как сделать вывод результата курсора?
...
Рейтинг: 0 / 0
14.01.2021, 11:46
    #40035711
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
x17.mstu,

dbms_sql

....
stax
...
Рейтинг: 0 / 0
14.01.2021, 11:54
    #40035715
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
Stax,

Каким образом ? есть пример? подскажите если есть такая возможность
...
Рейтинг: 0 / 0
14.01.2021, 12:22
    #40035733
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sys_refcursor - добавление условия при конкатенации
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sys_refcursor - добавление условия при конкатенации / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]