2014-11-21 2 views
0

Я очень новый пользователь Oracle SQL, и у меня возникла проблема.Разница между TABLE_NAME и «TABLE_NAME» в Oracle?

Если я создаю таблицу с кодом, такие как

create table TBL_NAME... 

после того, как я могу получить данные по

выберите * от tbl_name;

Однако, когда я создаю таблицу с Navicat (просто нажмите на кнопку новой таблицы), то я должен добавить «» к имени таблицы, чтобы получить доступ к своей таблице, например:

select * from "TBL_NAME"; 

Итак, есть ли другой тип таблицы? И если я использую Navicat для создания таблицы, какой тип?

ответ

1

Когда вы укажете имя таблицы в Oracle без двойных кавычек, Oracle преобразует это имя таблицы в верхний регистр. Но если вы укажете имя таблицы в двойных кавычках, тогда Oracle будет уважать строчные буквы, которые у вас могут быть.

Итак, как и в вашем примере, имя вашей таблицы уже все в верхнем регистре, тогда нет никакой разницы в определении или отсутствии двойных кавычек.

Но, к примеру, если вы создаете таблицу, как это:

CREATE TABLE "my_table" .... 

Тогда вы не можете получить доступ к нему, как это:

SELECT * FROM my_table; 

, как Oracle будет преобразовывать, что выбрать для этого:

SELECT * FROM MY_TABLE; 

И нет такой таблицы в вашей системе.

В вашем случае с Navicat вам просто нужно указать имя таблицы как есть, но не волнуйтесь, просто поместите двойные кавычки и придерживайтесь всех имен верхнего регистра, и вы будете в порядке ,

+0

Спасибо @DWilches, ваш ответ решает мои проблемы. Это заставляет меня путать весь день –

Смежные вопросы