Any*_*are -1 sql oracle orm entity-framework naming-conventions
有没有办法Oracle DB
用小写字母命名我的表格,列?
我搜索了很多,一些建议说我应该在创建中使用双引号,如下所示:
CREATE TABLE "test" (a number);
Run Code Online (Sandbox Code Playgroud)
这里的问题是:
它迫使我double quotes
通过查询来装饰我的所有桌子!
如果我写:
SELECT * FROM test ;
Run Code Online (Sandbox Code Playgroud)
我会得到语法错误.
我想将我的所有表,字段命名为小写,因为我将在我的模型中使用这个ORM
(实体框架)使用(Pluralization and Singularization
)功能,所以如果我有这样的表:
CITY
根据Oracle惯例.
等效的将是CITY
实体和复数,因为导航属性将是CITies
!!
[TL; DR]最简单的方法是永远不要在对象名称周围使用双引号,只让oracle以默认方式管理区分大小写.
默认情况下,Oracle数据库区分大小写; 但是,默认情况下,它们还会将所有内容转换为大写字母,以便从用户那里抽象出区分大小写.
CREATE TABLE tEsT ( column_name NUMBER );
Run Code Online (Sandbox Code Playgroud)
然后:
SELECT COUNT(*) FROM test;
SELECT COUNT(*) FROM Test;
SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM tEsT;
Run Code Online (Sandbox Code Playgroud)
将所有人都提供相同的输出和:
SELECT * FROM USER_TABLES;
Run Code Online (Sandbox Code Playgroud)
输出:
TABLE_NAME
----------
TEST
Run Code Online (Sandbox Code Playgroud)
(注意表名是大写的).
如果你使用双引号,那么oracle将尊重你在表名中使用case:
CREATE TABLE "tEsT" ( column_name NUMBER );
Run Code Online (Sandbox Code Playgroud)
和:
SELECT * FROM USER_TABLES;
Run Code Online (Sandbox Code Playgroud)
输出:
TABLE_NAME
----------
TEST
tEsT
Run Code Online (Sandbox Code Playgroud)
(注意:现在有两个表命名TEST
,tEsT
而oracle已经尊重了第二个表的区分大小写).
归档时间: |
|
查看次数: |
2553 次 |
最近记录: |