powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / sys_refcursor - добавление условия при конкатенации
16 сообщений из 16, страница 1 из 1
sys_refcursor - добавление условия при конкатенации
    #40035585
x17.mstu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Набросал

Код: 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
sys_refcursor - добавление условия при конкатенации
    #40035594
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
sys_refcursor - добавление условия при конкатенации
    #40035655
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASNexus
Код: plsql
1.
NVL2

Ну-ну.
...
Рейтинг: 0 / 0
sys_refcursor - добавление условия при конкатенации
    #40035659
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
sys_refcursor - добавление условия при конкатенации
    #40035679
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic
ASNexus
Код: plsql
1.
NVL2

Ну-ну.

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

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

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

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

.....
stax


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

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

.....
stax


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


странно

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

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


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


странно

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

....
stax


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

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


Странно

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

.....
stax
...
Рейтинг: 0 / 0
sys_refcursor - добавление условия при конкатенации
    #40035693
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
sys_refcursor - добавление условия при конкатенации
    #40035698
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env
ASNexus,

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


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

dbms_sql

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

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


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