表結構在將值插入表時出錯?
Name Null Type
------------- ---- ------------
T_NO NUMBER
T_NAME VARCHAR2(10)
ENTERING_TIME TIMESTAMP(6)
LEAVING_TIME TIMESTAMP(6)
TO_DATE DATE
觸發
create or replace trigger t4
before insert
on t4
for each row
declare
d_entering_time timestamp(6):=to_char('09:00:00AM','HH12:MM:SSAM');
begin
if (:new.entering_time <= d_entering_time) then
raise_application_error
(-20002,'Date of joining cannot be after system date.');
end if;
end;
和我插入查詢
insert INTO t3 (entering_time) values (TO_date('8:31:51AM','HH:MI:SSAM'))
我收到以下錯誤:
SQL Error: ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "SYSTEM.T3", line 2
ORA-04088: error during execution of trigger 'SYSTEM.T3'
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause:
*Action:
鈣ñ任何人建議我哪裏出現錯誤?
'to_char()'將日期(或時間戳)轉換爲字符串文字。你想'to_timestamp()'來代替。您是否意識到時間戳還包含日期部分? –
即使使用'to_timestamp()'也會得到相同的錯誤 – user2801653
您是否瞭解Oracle時間戳記是什麼? http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm#autoId14 –