Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск с переносом строк 
V
    Опции темы
rang3r
Дата 27.6.2011, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 2.4.2009

Репутация: нет
Всего: нет



Всем привет! 
 Возможно тема уже поднималась, но резульатах не нашел :( 
 Подскажите, н-р в базе надо сохранить след. текст:
A
B
C
D

В Java строка представлена как "A\r\nB\r\nC\r\nD", где то видел похожую проблему, там предлагалось что то типа следующего :
Код

select p.* 
    from values p 
      where p.value = 'A'||chr(13)||''||chr(10)||'B'||chr(13)||''||chr(10)||'C'||chr(13)||''||chr(10)||'D'


Но к сожалению это не работает, подскажите пжж-та как правильно зареплейсить \r\n ?
Заранее спасибо!

Это сообщение отредактировал(а) rang3r - 27.6.2011, 15:15
PM MAIL Skype   Вверх
Zloxa
Дата 27.6.2011, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



если value не clob, изучите результат запроса:
Код

select p.value
   ,dump(p.value)
    from values p 


Быть может это зависит от платформы, я точно не уверен, но я не припомню, чтобы оракл сохранял chr(13). Лишь chr(10)


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
rang3r
Дата 27.6.2011, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 2.4.2009

Репутация: нет
Всего: нет




Typ=1 Len=7: 65,10,66,10,67,10,68

Как я понимаю это коды всех символов значения, что же верно, он не сохраняет chr(13), т.е. тогда игнорировать значение \r, или просто переводить его в '' ?
Спасибо запрос без chr(13) отработал корректно.
PM MAIL Skype   Вверх
Zloxa
Дата 28.6.2011, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



я был наверное не в полной мере прав, когда заявил что оракл не хранит в строках символы 0x0D, очень он их даже хранит. Правильнее наверное было бы сказать, что оракл не использует этот символ при интерпретации sql и pl/sql выражений. Где этот символ "пропадает" - затруюнюсь ответить - на уровне OCI ли, на уровне SQL*Plus ли. Но если в строке сохранить 0x0D, то он таки сохранится
Код

SQL> var bind1 varchar2(10);
SQL> var bind2 varchar2(10);
SQL> exec :bind1 := chr(13)||chr(10);

PL/SQL procedure successfully completed.

SQL> begin :bind2 := '
  2  '; end;
  3  /

PL/SQL procedure successfully completed.

SQL> select length(:bind1)
  2         ,length(:bind2)
  3         ,length(chr(13)||chr(10))
  4         ,length('
  5  ')
  6  from dual;

LENGTH(:BIND1) LENGTH(:BIND2) LENGTH(CHR(13)||CHR(10)) LENGTH('')
-------------- -------------- ------------------------ ----------
             2              1                        2          1



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
rang3r
Дата 29.6.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 2.4.2009

Репутация: нет
Всего: нет



Спасибо за ответ, но все оказалось гораздо проще, действительно Oracle хранит оба типа символов, дело в том что в одном случае строка для вставки  приходила с этими символами, а в другом только с \n, а запрос на выборку строился всегда с учетом что есть последовательность символов \r\n. Проблема снимается.
 Спасибо за 

Код

select p.value
   ,dump(p.value)
    from values p


Не знал такой фичи, оч. полезная
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.