[SQL*Plus WorkSheet]插入表的时候出现这样的问题! 看看这样行不,insert into emp values(7839, KING, PRESIDENT, NULL, 20811117, 5000, NULL, 10); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to:ikegami这个.....好像我还没有看到这样的date格式,请解释一下好么,insert into emp values(7839, KING, PRESIDENT, NULL, 20811117, 5000, NULL, 10); *ERROR位于第一行:ORA-00984:列在此处不允许还是这个错误 我刚刚查出来默认的日期格式就是:DD-MON-YY,也就是说我的日期方式没有错误,请指教到底错在什么地方!!谢谢 用TO_DATE转化。insert into emp values(7839, KING, PRESIDENT, NULL, to_date('20811117','yyyymmdd'), 5000, NULL, 10); 可是默认的日期格式就是:DD-MON-YY;难道说我的错了?? to: LGQDUCKY能不能你帮忙调试一下,如果你的是在9.2的版本下能够通过的话,写下来,不胜感激.因为刚刚学习SQL,以及没有Oracle的使用经验,所以比较"傻",好多东西不是能够轻易看明白的我还在慢慢的摸索阶段,因此.....多谢拉 DD-MON-YY掩码在数据库字符集不同的情况下是不同的。在oracle中的日期字段你最好都用to_data函数作转换,例如to_data('2003-10-11 20:50:10','yyyy-mm-dd hh24:mi:ss'),所有的掩码在Oracle SQL Reference中都有说明 楼上的是不是说在中文环境下就是'11-11月-81‘在英文环境下就是'11-NOV-81'这样的话就必须用TO_DATE来转变!那么怎么更改默认的语言!! NLS_LANG=NLS_DATE_FORMAT可是怎么改这个东西??? 用 To_Date() 来规范化一下就可以啦~to_date(日期,'格式') chanet:这个to_date();我还是能够用的,可是即使用了以后还是出现错误,估计是中英文的问题,我的是中文环境9.2i,希望能够试验一下再帮我弄一下!!这个东西还真的是很麻烦的!!不是说说就行的!! To caishuni试试如下语句看行不行:insert into emp values(7934,MILLER,CLERK,7782,To_Date('23-JAN-82','dd-mon-yy','NLS_DATE_LANGUAGE = American')),1300,NULL,10);------------------------------------------------------------------- 用这种格式,但这个字段一定要是 日期型.还有:这种数据有 Y2K 的 Bug. 因为 year 是两位,通常是 四位.我试过,insert 之后,成为: 2082-01-23 啦~现在要解决的问题是清除 Y2k 这个 Bug.暂时可能解决的方法有两种: 1. 设置Oralce 里 Year 为两位的话,就是 19.. 带头。2. Insert 之后再更新。这样问题才真正解决. 一起努力吧~ 我再帮你找一下资料。不过,你也要为 insert 了之后的处理 Y2K 问题呀~ :) 唉... :(找了好久,找不到 Oracle 对 Y2K 的处理.如果 caishuni 你硬要用两位数来做 year 的话,就用事后补救啦~ 把所有 HIREDATE 都改在 '19' 开头.语句:update emp set HIREDATE = To_date('19'||substr(to_char(HIREDATE,'yyyymmdd'),3,6),'yyyymmdd')作用:把所有的记录 里的 HIREDATE 字段都改成 '19'开头实现概述:用'19'来替换 HIREDATE 的前两位,形式一个 YYYY-MM-DD(年月日) 的规范.该方法用了两个函数:To_date(字符,格式); 主要是规范化日期的设置,在这里你可以随意更改格式.substr(字符,开始位数,总位数);把 yyyymmdd 去除前两位. (因为前两位用 '19' 补充) To caishuni 呵呵...这样子的话,你的问题就全部解决完了 :)-------------------------(广告时间)-------------------------数据库的设计一定要注重规范化 如:年月日 时分秒 (YYYY-MM-DD HH24:MI:SS); (不过可以按项目而定) oracle 学习怎么深入 菜鸟问题,请问游标怎么关闭的? 紧急求救,有关oracle事务最大并发处理问题? 100分,应该是一个非常简单的脚本问题,谢谢大家了! 数据链路:access与oracle之间能否建立数据链路 hql语句中如何加入/*+RULE*/这种语句! 一个简单的函数问题 imp导入的问题,谢谢!!! #######高分求三表關系查詢的語句###### ■大家看看这种错误是少什么权限? 向(pengdali<大力>)先生求救!!!!关于一对多关系表的查询问题,急!!!!!!!!!! 有关INDEX优化的问题
这个.....好像我还没有看到这样的date格式,请解释一下好么,
insert into emp values(7839, KING, PRESIDENT, NULL, 20811117, 5000, NULL, 10);
*ERROR位于第一行:
ORA-00984:列在此处不允许
还是这个错误
insert into emp values(7839, KING, PRESIDENT, NULL, to_date('20811117','yyyymmdd'), 5000, NULL, 10);
能不能你帮忙调试一下,如果你的是在9.2的版本下能够通过的话,写下来,不胜感激.
因为刚刚学习SQL,以及没有Oracle的使用经验,所以比较"傻",好多东西不是能够轻易看明白的
我还在慢慢的摸索阶段,因此.....
多谢拉
在中文环境下就是'11-11月-81‘
在英文环境下就是'11-NOV-81'
这样的话就必须用TO_DATE来转变!
那么怎么更改默认的语言!!
NLS_DATE_FORMAT
可是怎么改这个东西???
这个东西还真的是很麻烦的!!
不是说说就行的!!
insert into emp values(7934,MILLER,CLERK,7782,
To_Date('23-JAN-82','dd-mon-yy','NLS_DATE_LANGUAGE = American')),1300,NULL,10);
-------------------------------------------------------------------
用这种格式,但这个字段一定要是 日期型.还有:这种数据有 Y2K 的 Bug. 因为 year 是两位,通常是 四位.
我试过,insert 之后,成为: 2082-01-23 啦~现在要解决的问题是清除 Y2k 这个 Bug.
暂时可能解决的方法有两种:
1. 设置Oralce 里 Year 为两位的话,就是 19.. 带头。
2. Insert 之后再更新。这样问题才真正解决. 一起努力吧~
我再帮你找一下资料。
不过,你也要为 insert 了之后的处理 Y2K 问题呀~ :)
找了好久,找不到 Oracle 对 Y2K 的处理.
如果 caishuni 你硬要用两位数来做 year 的话,就用事后补救啦~ 把所有 HIREDATE 都改在 '19' 开头.
语句:
update emp set HIREDATE = To_date('19'||substr(to_char(HIREDATE,'yyyymmdd'),3,6),'yyyymmdd')作用:把所有的记录 里的 HIREDATE 字段都改成 '19'开头实现概述:用'19'来替换 HIREDATE 的前两位,形式一个 YYYY-MM-DD(年月日) 的规范.该方法用了两个函数:
To_date(字符,格式); 主要是规范化日期的设置,在这里你可以随意更改格式.
substr(字符,开始位数,总位数);把 yyyymmdd 去除前两位. (因为前两位用 '19' 补充)
这样子的话,你的问题就全部解决完了 :)-------------------------(广告时间)-------------------------
数据库的设计一定要注重规范化
如:年月日 时分秒 (YYYY-MM-DD HH24:MI:SS); (不过可以按项目而定)