Как изменить тип даты в Oracle Select? - PullRequest
4 голосов
/ 12 января 2011

Я обычно использую PostgreSQL, но в настоящее время я делаю это в Oracle.

Мне нужно изменить тип данных столбца в запросе (выбрать), в PostgreSQL я обычно делаю это следующим образом:

select 1::varchar from table

Как я могу это сделать в Oracle?

С наилучшими пожеланиями,

Ответы [ 3 ]

8 голосов
/ 12 января 2011

конвертировать в varchar

 select to_char(Field) from table

усеченный varchar

 select substr(field, 1, 1) from table
4 голосов
/ 12 января 2011

Как отмечает @Mikhael Pakhantsov, to_char работает для преобразования в строку.Аналогично, to_date и to_timestamp являются стандартом при преобразовании строк в даты и временные метки соответственно.Однако, если вы обнаружите, что вам нужно выполнить более экзотическое преобразование (например, varchar2 в raw), то cast ваш друг:

Число в строку:

select cast(field as varchar2(30)) from table;

Строка в Raw:

select cast(field as raw(16)) from table;
1 голос
/ 15 января 2017

Как @Allan, я люблю использовать cast(), так как он может идти от и ко многим типам.
Однако, как говорится в официальной документации,

CAST не поддерживает LONG, LONG RAW, любые типы данных LOB или типы, предоставляемые Oracle

Так что его нельзя использовать для преобразования в CLOB, например, Oracle выдаст

ORA-00932: несовместимые типы данных: ожидается - получил CLOB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...