TRUNC(SYSDATE) dans une variable en oracle 10
Bonjour,
J'ai une table (on ne peut plus basique)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| -- Create table
create table TEMP_TEST_TABLE
(
KEY_ID CHAR(6) not null,
CISC_DATE DATE not null
)
tablespace LPAS_DATA
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 60M
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table TEMP_TEST_TABLE
add constraint TEMP_TEST_TABLE_PK primary key (KEY_ID)
using index
tablespace LPAS_INDEX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 41600K
minextents 1
maxextents unlimited
);
-- Create/Recreate indexes
create index TEMP_TEST_TABLE_CISC_DATE on TEMP_TEST_TABLE (CISC_DATE)
tablespace LPAS_INDEX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 26000K
minextents 1
maxextents unlimited
); |
J'essaie de la remplir, en ne mettant que la date (sans HH24:MI:SS) dans le champ CISC_DATE.
Lorsque passe par une procédure stockées et je fais ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11
| DECLARE
CURRENT_DATE date := TRUNC(SYSDATE);
BEGIN
INSERT INTO temp_test_table SELECT '1', CURRENT_DATE FROM dual;
CURRENT_DATE:=TRUNC(SYSDATE);
INSERT INTO temp_test_table SELECT '2', CURRENT_DATE FROM dual;
CURRENT_DATE:=to_date(to_char(trunc(SYSDATE),'DD/MM/YYYY')||' 00:00:00','DD/MM/YYYY HH24:MI:SS');
INSERT INTO temp_test_table SELECT '3', CURRENT_DATE FROM dual;
INSERT INTO temp_test_table SELECT '4', TRUNC(sysdate) from dual;
COMMIT;
END; |
je devrais avoir 4 fois la meme valeur dans le champ date (juste une date), n'est ce pas ?! Et ben non, en fait j'ai ceci :
Code:
1 2 3 4 5 6 7
| select t.* from temp_test_table t;
KEY_ID CISC_DATE
1 18/10/2010 14:13:42
2 18/10/2010 14:13:42
3 18/10/2010 14:13:42
4 18/10/2010 |
Etrange, n'est-il pas.
Quelqu'un a une explication et une solution ?
Comment assigner une valeur date à une variable de type DATE, une date sans HH24:MI:SS ???
Note : cela fonctionnait très bien sur oracle 8, depuis qu'on est passé à Oracle 10, rien ne va plus...
nouveau mot réservé... en effet
Et oui, CURRENT_DATE n'était pas réservé dans les versions précédante d'Oracle. Maintenant oui. merci de l'info...
Je sais aussi qu'avec un values cela fonctionne bien aussi, mais dans mon "vrai" code je fais un insert à partir d'une autre table => le select.