Oracle: Как я могу узнать, какие символы новой строки (или символы с низким ascii) находятся в моих текстовых полях? - PullRequest
1 голос
/ 29 апреля 2011

У меня есть данные в некоторых полях VARCHAR2, которые содержат встроенные символы новой строки (см. этот вопрос )

Однако, похоже, данные отличаются тем, как они хранят встроенные символы новой строки - некоторые данные восходят к середине 90-х годов, так что это не удивительно.

Как я могу точно увидеть, какие символы встроены в мои поля? Я пробовал и sqldeveloper и sql * plus.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Самый простой вариант -

SELECT your_column_name, dump( your_column_name, 1013 )
  FROM your_table_name

. Он покажет вам десятичное значение каждого символа, хранящегося в этом столбце.Так, например

SQL> ed
Wrote file afiedt.buf

  1  select ename, dump(ename, 1013) dmp
  2*   from emp
SQL> /

ENAME      DMP
---------- -------------------------------------------------------
smith      Typ=1 Len=5 CharacterSet=AL32UTF8: 115,109,105,116,104
ALLEN      Typ=1 Len=5 CharacterSet=AL32UTF8: 65,76,76,69,78
WARD       Typ=1 Len=4 CharacterSet=AL32UTF8: 87,65,82,68
JONES      Typ=1 Len=5 CharacterSet=AL32UTF8: 74,79,78,69,83
MARTIN     Typ=1 Len=6 CharacterSet=AL32UTF8: 77,65,82,84,73,78
BLAKE      Typ=1 Len=5 CharacterSet=AL32UTF8: 66,76,65,75,69
CLARK      Typ=1 Len=5 CharacterSet=AL32UTF8: 67,76,65,82,75
SCOTT      Typ=1 Len=5 CharacterSet=AL32UTF8: 83,67,79,84,84
KING       Typ=1 Len=4 CharacterSet=AL32UTF8: 75,73,78,71
TURNER     Typ=1 Len=6 CharacterSet=AL32UTF8: 84,85,82,78,69,82
ADAMS      Typ=1 Len=5 CharacterSet=AL32UTF8: 65,68,65,77,83
SM0        Typ=1 Len=3 CharacterSet=AL32UTF8: 83,77,48
FORD       Typ=1 Len=4 CharacterSet=AL32UTF8: 70,79,82,68
MILLER     Typ=1 Len=6 CharacterSet=AL32UTF8: 77,73,76,76,69,82
FOO        Typ=1 Len=3 CharacterSet=AL32UTF8: 70,79,79

15 rows selected.
0 голосов
/ 30 апреля 2011

См. здесь , чтобы узнать, как получить только строки со столбцом, имеющим определенные символы. Легко конвертируется в показ только непечатаемых символов или того, что вы хотите просмотреть.

Смотрите мой ответ, используя функцию regexp_instr.

Надеюсь, что поможет

...