请教有关oracle的初级问题

onlythree 2009-11-06 11:24:31
我是做程序的,对数据库了解很有限,最了解的要数mysql了,但也只限于增删改之类的了。

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

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


请教高手,上面都是对的吗,还是错的,谢谢
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liusong_china 2009-11-06
  • 打赏
  • 举报
回复
1,字段名不能加引号,和关键字同名的字段要加引号,而且必须大写(插入时)
------这个不一定。
2,数据为空的不能是'',必须是' '(中间加个空格)
------Oracle中的空就是NULL和'',中间加个空格就不是所谓的空了。
3,日期不能插入文本,必须要用格式化函数to_date
------如果字段是日期类型的话要用to_date()转化一下。
4,NULL不能加引号
-------NULL就是NULL,加了引号就是字符串了,就不是空了。
5,最要命的,200万条数据,恢复了3个小时,竟然没有恢复完
--------你的恢复有问题吧,、。。。。。。。。
liusong_china 2009-11-06
  • 打赏
  • 举报
回复
其实没有绝对的对与错,只是一个约定而已,并不是说非得这样做不可。
wh62592855 2009-11-06
  • 打赏
  • 举报
回复
呵呵
不知道楼主对弱智的定义是怎样的
如果ORACLE弱智的话
为什么这么多人都在使用

1
--这里加引号是要指明字段名要小些 而不是大写
SQL> create table t3("name" varchar2(20));

Table created.

SQL> select * from t3;

no rows selected

SQL> 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 selected

SQL> insert into t4 values('tt');

1 row created.

SQL> select * from t4;

'name'
--------------------
tt


2
SQL> desc t2
Name Null? Type
----------------------------------------- -------- ----------------------------

ID NUMBER(38)

SQL> select * from t2;

ID
----------
1
2
1
SQL> desc t2
Name Null? Type
----------------------------------------- -------- ----------------------------

ID NUMBER(38)

SQL> select * from t2;

ID
----------
1
2
1


3
这是规范化 如果你认为规范都是弱智 那没什么好说的了

4
NULL就是NULL 不明白你为什么给它加个引号 有什么意义

5
你自己的操作有问题估计
应该不会这么慢
除非你每条记录都超大
小灰狼W 2009-11-06
  • 打赏
  • 举报
回复
1.字段名可以不加引号,也可以加双引号。如果建表时的字段名没有加双引号,则查询时可以不加,或者用双引号时字段名要大写。如果创建时用了双引号,查询时也要加,按建表时的大小写输入字段名,否则被认为是大写。

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

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

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

5.那要看对象和数据库的具体情况了。oracle被认为是当今效率最高性能最好的数据库之一,不会存在太“要命”的问题

17,380

社区成员

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

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