默认情况下,Oracle 数据字典使用大写的对象名称。考虑这样的声明:
create table t23 (col1 number);
要找到这些细节,我们需要
select * from user_tables where table_name = 'T23';
select * from user_tab_columns where table_name = 'T23' and column_name = 'COL1';
但如果我们在标识符中使用双引号,数据字典会按原样存储它们:
create table "t42" ("col1" number);
因此,此查询将找不到任何内容:
select * from user_tables where table_name = 'T42';
但这会:
select * from user_tab_columns where table_name = 't42' and column_name = 'col1';
我们需要使用双引号来引用标识符:
alter table "t42" modify "col1" varchar2(10);
如果我们创建带有大写标识符或不带双引号的对象,一切都很好。
这很好:
create user cat identified by cat;
这也可以(假设您还没有运行上一条语句):
create user "CAT" identified by hat;
无论哪种情况,我们都可以使用conn cat/hat 进行连接
因此,Mac 版 Toad 似乎将您的对象用双引号括起来。所以如果你使用小写,它执行的是
create user "cat" identified by "hat"
在这种情况下,您必须使用双引号并在提及该用户时保持大小写正确:conn "cat"/hat。 CAT 和 "cat" 是不同的用户。
此行为可以在 TOAD 中进行配置 - 戳一下“首选项”菜单。否则,请注意始终对数据库对象使用大写字母(不要担心密码,它们在 11g 及更高版本中区分大小写。