Oracle中,表的字段名是不是只能用大写字母?

redact 2002-09-10 10:59:35
原来我的程序用MySQL数据库,字段名都是小写,
移植到Oracle上,发现字段都只能是大写字母。
请问,有没有什么办法可以解决?是不是可以设置?

另外,Oracle上没有自增字段?如何解决自增问题?

...全文
1467 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuyang_wang 2002-09-10
  • 打赏
  • 举报
回复
oracle允许小写的字段名和表名,但默认都是大写。
如果这样写:select aa,bb from tab;则可以不区分大小写,ORACLE自动认为是大写。但如果这样:select "AA","BB" FROM "TAB";则必须要大写了。
但有特殊情况:
例如:用 create table tab_a (...)创建的表都可以用上面的方法查询,但如果加上双引号就不同了。
create table "TAB_A" (...) :与上面的结果一样,但下面就不同了。
create table "Tab_a" (...); 和create table "tab_a" (...);则可以创建两个不同的表,针对这种表的查询必须使用双引号,而且大小写必须一致。
比如:select * from tab_a;和 select * from "TAB_A";是一样的,但select * from "Tab_a";就不同了。
而且你如果同时用 tab_a,"Tab_a","tab_a"做为表名创建表,则会创建三个不同的表。
其查询,操作也必须使用同样的名字:tab_a = Tab_a = "TAB_A","Tab_a","tab_a"。
而且不同的大小写组合就可以创建不同的表。
select table_name from sys.all_tables(或sys.user_tables);可以看到表名的实际名字。

够了吧,赶快结贴。
mycode 2002-09-10
  • 打赏
  • 举报
回复
Oracle的数据字典中,对表名和字段名的存储一般采用大写。此时,用大写或小写的表名或字段名访问Oracle都是可以的。
如果采用特别的方式,创建小写的表名或字段名,则需要采用特别的方式来访问表名或字段名。如下:
select "col1" from "table_name",这样就可以严格使用大小写,由于这样太麻烦,都常都使用大小写无关的方式了。
luckysxn 2002-09-10
  • 打赏
  • 举报
回复
ORACLE默认是大写的。在写SQL语句时是没有任何影响的。
但表中的数据当然要区分大小写的了。

至于自增列,有序列就可以满足。具体可以看楼上的。
snowy_howe 2002-09-10
  • 打赏
  • 举报
回复
oracle 忽略表名和列名的大小写。
但是表名和列名以大写形式存储在ORACLE的内部数据字典中。
当用户输入一个查询时,它立即将表名和列名转化为大写,然后与字典中的内容进行检查对比。
bzszp 2002-09-10
  • 打赏
  • 举报
回复
使用小写也可以进行检索啊

Oracle上没有自增字段,可以使用索引和触发器来达到此目的
第一步:创建SEQUENCE
create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;
第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE
create or replace trigger bef_ins_t_country_define
before insert on t_country_define
referencing old as old new as new for each row
begin
new.country_id=s_country_id.nextval;
end;

black_snail 2002-09-10
  • 打赏
  • 举报
回复
Oracle accept both upper case and lower case table name and columne name

table tab is same as TAB or Tab .

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧