PL/SQL的时间插入问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:34:54
declare
v_hiredate emp.hiredate%type:='&输入出生日期';
begin
insert into emp hiredate values v_hiredate;
end;
PL/SQL的时间怎么插入啊??/对吗??
表里的时间格式是'XXXX-YY-KK'.
我插入时候老是不对??请帮帮下忙!!!
declare
v_empno emp.empno%type:=&请输入编号;
v_ename emp.ename%type:='&请输入名字';
v_job emp.job%type:='&请输入工种';
v_mgr emp.mgr%type:=&请输入MGR;
v_hiredate emp.hiredate%type:='&输入雇佣日期';
v_sal emp.sal%type:=&请输入薪水;
v_comm emp.comm%type:=&请输入奖金;
v_deptno emp.deptno%type:=&请输入部门编号;
begin
insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values
(v_empno,v_ename,v_job,v_mgr,to_date(v_hiredate,'yyyy-mm-dd'),v_sal,v_comm,v_deptno);
end; 这是PL/SQL的原代码,可是时间输入老不对啊..帮帮啊!我会加分的!!
输入'2007-10-24'出现错误:ORA-01861: literal does not match format string
ORA-06512: at line 7

declare
v_hiredate emp.hiredate%type:=to_date('&输入出生日期','yyyy-mm-dd');
begin
insert into emp hiredate values v_hiredate;
end;

在oracle中,date类型都是带时间的,如果吧一个具体的日期(获时间)赋给一个日期型变量,如果是当前时刻:vdate := sysdate;就可以,否则只能用to_date函数。常用格式:年-月-日 时:分:秒 'yyyy-mm-dd hh:mi:ss';年月日:'yyyy-mm-dd'。其他以此类推。注意:月必须用m,分必须用mi

PL/SQL应该是oracle中的工具吧?
插入的时候不能直接用'XXXX-YY-KK',需要用一个转换函数
类似如此:譬如日期为2007年10月24日
insert into emp (to_char(hiredate,'yyyy-mm-dd')) values '2007-10-24';
还有一个,应用到这里最后insert后应该有个提交,即commit;

insert into emp(empno,ename,job,mgr,to_char(hiredate,'yyyy-xx-dd'),sal,comm,deptno) values(v_empno,v_ename,v_job,v_mgr,v_hiredate,v_sal,v_comm,v_deptno);

如果你的hiredate栏位是日期类型的话,那你的语句可以这样写

insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values(v_empno,v_ename,v_job,v_mgr,to_date(v_hiredate,'yyyy-mm-dd'),v_sal,v_comm,v_deptno);

注意你在执