使用法语格式(dd / mm / yyyy)将sysdate插入plsql中的日期字段

时间:2017-09-13 15:14:38

标签: oracle plsql

我的表格包含字段' EVT_START_DATE'数据类型是Oracle上的DATE。 我想将当前日期插入此字段,法语格式为dd / mm / yyyy。

我做了这个命令行:

ALTER SESSION SET NLS_LANGUAGE = 'FRENCH';

之后,我尝试了这块PL / SQL代码:

DECLARE
v_evt_num VARCHAR(200); 
BEGIN
v_evt_num := 'PC_' || evt_seq.NEXTVAL; 

INSERT INTO event
(EVT_NUM,EVT_CODE_PAY,EVT_CODE_USER,EVT_START_DATE,EVT_MT) 
VALUES 
(v_evt_num,
'129',
'247',
TO_DATE(SYSDATE, 'DD/MM/YYYY'),
:i_mt);

COMMIT;

dbms_output.put_line('Success.');

EXCEPTION WHEN OTHERS THEN
   dbms_output.put_line('Fail.');

END;

但是我得到了失败的消息。

1 个答案:

答案 0 :(得分:0)

如果EVT_START_DATE属于DATE类型,则只使用:

INSERT INTO event
(EVT_NUM,EVT_CODE_PAY,EVT_CODE_USER,EVT_START_DATE,EVT_MT) 
VALUES 
(v_evt_num,
'129',
'247',
SYSDATE,
:i_mt);

不使用to_date功能。

Oracle的SYSDATE函数返回DATE类型的值,因此不需要使用to_date将其转换为DATE,因为它已经是DATE了。

  

SYSDATE返回为操作系统设置的当前日期和时间   数据库所在的位置。 返回值的数据类型是   DATE