首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

请教有关oracle规范?

2014-01-28 
我是做程序的,对数据库了解很有限,最了解的要数mysql了,但也只限于增删改之类的了。 一个项目要求用程序生成

我是做程序的,对数据库了解很有限,最了解的要数mysql了,但也只限于增删改之类的了。

一个项目要求用程序生成oracle的sql文件,但DBA告诉我几点oracle规范让我很不爽,甚至感到oracle太弱智了。

1,字段名不能加引号,和关键字同名的字段要加引号,而且必须大写(插入时)
2,数据为空的不能是'',必须是' '(中间加个空格)
3,日期不能插入文本,必须要用格式化函数to_date
4,NULL不能加引号
5,最要命的,200万条数据,恢复了3个小时,竟然没有恢复完


请教大家,上面都是对的吗,还是错的?


------解决方法--------------------------------------------------------
1.字段名可以不加引号,也可以加双引号。如果建表时的字段名没有加双引号,则查询时可以不加,或者用双引号时字段名要大写。如果创建时用了双引号,查询时也要加,按建表时的大小写输入字段名,否则被认为是大写。

2.数据为空时可以是 '',也可以是null。中间加个空格就不是null而是blank了。这与你们的需求有关,与oracle无关

3.看你的字段类型了。如果用的是字符型,'2009-1-1'即可,注意长度。如果是date型,当然要转一下,用to_date转换类型。否则类型不对应,谈何插入

4.null为关键字,不是对象名,为何你想要加引号?

5.那要看对象和数据库的具体情况了。oracle被认为是当今效率最高性能最好的数据库之一,不会存在太“要命”的问题
------解决方法--------------------------------------------------------
不知道你对弱智的定义是怎样的
如果ORACLE弱智的话
为什么这么多人都在使用

1
 

SQL code
--这里加引号是要指明字段名要小些 而不是大写SQL> create table t3("name" varchar2(20));Table created.SQL> select * from t3;no rows selectedSQL> insert into t3 values('tt');1 row created.SQL> select * from t3;name--------------------tt--我不知道你说的字段加引号是不是像下面这样SQL> create table t4("'name'" varchar2(20));Table created.SQL> select * from t4;no rows selectedSQL> insert into t4 values('tt');1 row created.SQL> select * from t4;'name'--------------------tt
------解决方法--------------------------------------------------------
其实没有绝对的对与错,只是一个约定而已,并不是说非得这样做不可,这只是oracle规范。
------解决方法--------------------------------------------------------
1,字段名不能加引号,和关键字同名的字段要加引号,而且必须大写(插入时)
------这个不一定。
2,数据为空的不能是'',必须是' '(中间加个空格)
------Oracle中的空就是NULL和'',中间加个空格就不是所谓的空了。
3,日期不能插入文本,必须要用格式化函数to_date
------如果字段是日期类型的话要用to_date()转化一下。
4,NULL不能加引号
-------NULL就是NULL,加了引号就是字符串了,就不是空了。
5,最要命的,200万条数据,恢复了3个小时,竟然没有恢复完
--------你的恢复有问题吧,、。。。。。。。。         

热点排行