Ответ 1
Вы можете запросить представление all_tab_columns
в базе данных.
SELECT table_name, column_name, data_type, data_length FROM all_tab_columns where table_name = 'CUSTOMER'
Могу ли я получить типы данных для каждого выбранного столбца вместо значений, используя инструкцию select?
ДЛЯ ПРИМЕРА:
SELECT a.name, a.surname, b.ordernum
FROM customer a
JOIN orders b
ON a.id = b.id
и результат должен быть таким:
name | NVARCHAR(100)
surname | NVARCHAR(100)
ordernum| INTEGER
или он может быть в строке следующим образом: это не важно:
name | surname | ordernum
NVARCHAR(100) | NVARCHAR(100) | INTEGER
Спасибо
Вы можете запросить представление all_tab_columns
в базе данных.
SELECT table_name, column_name, data_type, data_length FROM all_tab_columns where table_name = 'CUSTOMER'
Я нашел не очень интуитивно понятный способ сделать это с помощью DUMP()
SELECT DUMP(A.NAME),
DUMP(A.surname),
DUMP(B.ordernum)
FROM customer A
JOIN orders B
ON A.id = B.id
Он вернет что-то вроде:
'Typ=1 Len=2: 0,48'
для каждого столбца.
Type=1
означает VARCHAR2/NVARCHAR2
Type=2
означает NUMBER/FLOAT
Type=12
означает DATE
и т.д.
Вы можете обратиться к этому документу оракула для информации Код Типа данных
или это для простого отображения Oracle Type Code Mappings
Я пришел в ту же ситуацию. В качестве обходного пути я только что создал view
(если у вас есть привилегии), и описал его, а затем бросил позже.:)
Я обычно создаю представление и использую команду DESC
:
CREATE VIEW tmp_view AS
SELECT
a.name
, a.surname
, b.ordernum
FROM customer a
JOIN orders b
ON a.id = b.id
Затем команда DESC
покажет тип каждого поля.
DESC tmp_view
Если у вас нет привилегий для создания представления в Oracle, "взломать" его для использования MS Access: - (
В MS Access создайте проход через запрос с вашим sql (но добавьте предложение where, чтобы просто выбрать 1 запись), создайте запрос выбора из представления (очень важно), выбирая все *, а затем создайте таблицу make из выберите запрос. Когда это произойдет, создается таблица с одной записью, все типы данных должны "совпадать" с оракулом. то есть Passthrough → Select → MakeTable → Table
Я уверен, что есть и другие способы, но если у вас ограниченные инструменты и привилегии, это будет работать.
Кроме того, если у вас есть Toad для Oracle, вы можете выделить оператор и нажать CTRL + F9, и вы получите прекрасный обзор столбца и их типов данных.
Вы можете использовать полный пример DBMS_SQL.DESCRIBE_COLUMNS2 в приведенном ниже URL