powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вывод строк столбца в переменной
2 сообщений из 2, страница 1 из 1
Вывод строк столбца в переменной
    #40071075
007alex3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Подскажите, пожалуйста, как можно закончить запрос, чтобы вывести строки по столбцу, название которого известно только после определения параметров (а именно таблицы и номера столбца)?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE
   name_in    VARCHAR2(200) := 'DWH_gate.T$TERMINAL';
   number_in      NUMBER(30);
   sql_stmt    VARCHAR2(200);
BEGIN
  select column_name
              into sql_stmt
              from all_tab_columns
              where table_name like upper(SUBSTR(name_in,instr(name_in,'.',1)+1))
                and owner like upper(REGEXP_SUBSTR(name_in,'[^.]+'))
                and column_id = 3;


Соответственно по 3-ему столбцу таблицы DWH_gate.T$TERMINAL необходимо получить данные. Но также проблема в том, что неизвестно какой тип данных будет в столбце.
...
Рейтинг: 0 / 0
Вывод строк столбца в переменной
    #40071104
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно через DBMS_XMLGEN приводя все поля к CLOB. Для полей которые в CLOB не преобразуются работать естественно не будет

Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
select  x.*
  from  dba_tab_columns,
        xmltable(
                 '/ROWSET/ROW/C'
                  passing dbms_xmlgen.getxmltype('select "' || column_name || '" c from "' || owner || '"."' || table_name || '"')
                  columns
                    c clob path '.'
                ) x
  where owner = 'SCOTT'
    and table_name = '&TBL'
    and column_id = &COLUMN_ID
/
Enter value for tbl: EMP
old  10:     and table_name = '&TBL'
new  10:     and table_name = 'EMP'
Enter value for column_id: 3
old  11:     and column_id = &COLUMN_ID
new  11:     and column_id = 3

C
--------------------------------------------------------------------------------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK
CLERK
ANALYST
CLERK

14 rows selected.

SQL> /
Enter value for tbl: EMP
old  10:     and table_name = '&TBL'
new  10:     and table_name = 'EMP'
Enter value for column_id: 5
old  11:     and column_id = &COLUMN_ID
new  11:     and column_id = 5

C
--------------------------------------------------------------------------------
17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
28-SEP-81
01-MAY-81
09-JUN-81
19-APR-87
17-NOV-81
08-SEP-81
23-MAY-87
03-DEC-81
03-DEC-81
23-JAN-82

14 rows selected.

SQL> /
Enter value for tbl: DEPT
old  10:     and table_name = '&TBL'
new  10:     and table_name = 'DEPT'
Enter value for column_id: 1
old  11:     and column_id = &COLUMN_ID
new  11:     and column_id = 1

C
--------------------------------------------------------------------------------
10
20
30
40

SQL> /
Enter value for tbl: DEPT
old  10:     and table_name = '&TBL'
new  10:     and table_name = 'DEPT'
Enter value for column_id: 2
old  11:     and column_id = &COLUMN_ID
new  11:     and column_id = 2

C
--------------------------------------------------------------------------------
ACCOUNTING
RESEARCH
SALES
OPERATIONS

SQL>



SY.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вывод строк столбца в переменной
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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