Lập trường đầu tiên của tôi về điều này là STP P_USER_TIME()
đang cắt ngắn dấu thời gian. Tuy nhiên, nếu bạn chắc chắn rằng nó có thể KHÔNG làm như vậy, bạn có thể thử-
DECLARE
ret_int INTEGER;
plsql_block VARCHAR2(1000);
BEGIN
plsql_block :='BEGIN P_USER_TIME(to_timestamp(''21-JUL-2012 03:30:30'',''DD-MON-YYYY HH24:MI:SS'')); END;';
ret_int := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(ret_int,plsql_block,DBMS_SQL.NATIVE);
ret_int_execute := DBMS_SQL.EXECUTE(ret_int);
DBMS_SQL.CLOSE_CURSOR(ret_int);
EXCEPTION
WHEN OTHERS THEN
DBMS_SQL.CLOSE_CURSOR(ret_int);
END;
Lưu ý- có một số lỗi liên quan đến Ngày giờ liên quan đến trình điều khiển ODBC. Ví dụ:- Lỗi 11864041 - BIẾN TIMESTAMP ĐƯỢC CHUYỂN NHƯ BIẾN TẦN TỪ GIÁ TRỊ NGUYÊN NHÂN CỦA ODBC ĐỂ BỊ LỖI ( Hỗ trợ của Oracle )