Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
Кентурион Крысобой
Member

Откуда:
Сообщений: 202
Здравствуйте.

В утилите isql СУБД interbase/firebird можно сделать вывод данных в "транспонированном" виде.
Например, для таблицы
SQL> recreate table t(id int, s01 varchar(80)); commit;
SQL> recreate table t(id int, s01 varchar(70)); commit;
SQL> insert into t values(1, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do');
SQL> insert into t values(2, 'eiusmod tempor incididunt ut labore et dolore magna aliqua.');
SQL> insert into t values(3, 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris');
SQL> insert into t values(4, 'nisi ut aliquip ex ea commodo consequat.');
SQL> commit;
- можно запросить вывод как в "нормальном" виде:
SQL> select * from t;

ID S01
============ ======================================================================
1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
2 eiusmod tempor incididunt ut labore et dolore magna aliqua.
3 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
4 nisi ut aliquip ex ea commodo consequat.

- так и в "перевернутом":
SQL> set list on;
SQL> select * from t;

ID 1
S01 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do

ID 2
S01 eiusmod tempor incididunt ut labore et dolore magna aliqua.

ID 3
S01 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris

ID 4
S01 nisi ut aliquip ex ea commodo consequat.

ВОПРОС. Как сделать аналогичное (см синий текст) в SQL*Plus ?
23 сен 12, 15:43    [13209066]     Ответить | Цитировать Сообщить модератору
 Re: SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
кит северных морей
Member

Откуда: krsk / nyc / krsk
Сообщений: 882
Кентурион Крысобой,

аналогичной команды нет. есть воркэраунды с установкой crlf в качестве colsep, но это гемор
23 сен 12, 16:01    [13209087]     Ответить | Цитировать Сообщить модератору
 Re: SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
Максим Н
Member

Откуда: Екатеринодар
Сообщений: 1439
Кентурион Крысобой,
Похожий функционал есть vim-плагине для sqlplus'а - vorax.
Работает неплохо - можно поковыряться в исходниках, посмотреть.
24 сен 12, 12:58    [13212309]     Ответить | Цитировать Сообщить модератору
 Re: SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
xmltype(cursor
Guest
SQL> select xmltype(cursor(select * from t)) from dual;

XMLTYPE(CURSOR(SELECT*FROMT))
--------------------------------------------------------------------------------
<?xml version="1.0"?>
<ROWSET>
 <ROW>
  <ID>1</ID>
  <S01>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do</S01>
 </ROW>
 <ROW>
  <ID>2</ID>
  <S01>eiusmod tempor incididunt ut labore et dolore magna aliqua.</S01>
 </ROW>
 <ROW>
  <ID>3</ID>
  <S01>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris</S01>
 </ROW>
</ROWSET>
24 сен 12, 13:09    [13212410]     Ответить | Цитировать Сообщить модератору
 Re: SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
+replace
Guest
select replace(xmltype(cursor(select * from t)).getclobval(), ' </ROW>
 <ROW>') from dual;
24 сен 12, 13:14    [13212452]     Ответить | Цитировать Сообщить модератору
 Re: SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
Ichwares
Guest
print_table (autor Tom Kyte) ??

SQL> column "Name" format a30
SQL> select "Id","Name" from "Watertype";

Id Name
---------- ------------------------------
5 Abwasser
1 Brunnenwasser
4 Gereinigtes Wasser
2 Trinkwasser
3 VE-Wasser

SQL> exec print_table('select "Id","Name" from "Watertype"')
********************************************
Output for >>>>> select "Id","Name" from "Watertype"
********************************************
Id : 5
Name : Abwasser
-----------------
Id : 1
Name : Brunnenwasser
-----------------
Id : 4
Name : Gereinigtes Wasser
-----------------
Id : 2
Name : Trinkwasser
-----------------
Id : 3
Name : VE-Wasser
-----------------
24 сен 12, 13:17    [13212480]     Ответить | Цитировать Сообщить модератору
 Re: SQLPlus, вывод данных в "транспонированном" виде. Как ?  [new]
eev
Member

Откуда: -
Сообщений: 1156
Кентурион Крысобой,

SQL> select * from v$version;
 
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE	11.2.0.3.0	Production
TNS for 32-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
 
SQL> 
SQL> with t as (
  2  select '1' id, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do' txt from dual
  3  union
  4  select '2' id, 'eiusmod tempor incididunt ut labore et dolore magna aliqua.' txt from dual
  5  union
  6  select '3' id, 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris' from dual
  7  union
  8  select '4' id, 'nisi ut aliquip ex ea commodo consequat.' from dual
  9  )
 10  select * from t
 11  UNPIVOT (txt_ FOR id_ in(id , txt));
 
ID_ TXT_
--- ------------------------------------------------------------------
ID  1
TXT Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
ID  2
TXT eiusmod tempor incididunt ut labore et dolore magna aliqua.
ID  3
TXT Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
ID  4
TXT nisi ut aliquip ex ea commodo consequat.
 
8 rows selected
24 сен 12, 13:24    [13212523]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить