Good question If I create the table as mentioned and run a quick test with code as below I have no issues Need to test with the autonomous transaction declare x integer := 0; begin for i in 1..1000 loop INSERT INTO tcom_return_adj_audit (record_number, msg, run_date) VALUES (i , 'inserting ' || i , sysdate); end loop; end; / ________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Niall Litchfield Sent: Wednesday, January 19, 2011 4:46 PM To: michaeljmoore@xxxxxxxxx Cc: oracle_l Subject: Re: Duplicate timestamp(6): How is this possible? how is the code called? On Wed, Jan 19, 2011 at 9:30 PM, Michael Moore <michaeljmoore@xxxxxxxxx> wrote: The problem is duplicate on primary key which is timestamp(6); CREATE TABLE TCOM_RETURN_ADJ_AUDIT ( TIME_D TIMESTAMP(6) DEFAULT current_timestamp NULL, RECORD_NUMBER NUMBER(10) NOT NULL, MSG VARCHAR2(4000 BYTE) NULL, RUN_DATE DATE NULL ); CREATE UNIQUE INDEX TCOM_RETURN_ADJ_AUDIT_PK ON TCOM_RETURN_ADJ_AUDIT (TIME_D) LOGGING TABLESPACE COM_INDX_DS NOPARALLEL; ALTER TABLE TCOM_RETURN_ADJ_AUDIT ADD ( CONSTRAINT TCOM_RETURN_ADJ_AUDIT_PK PRIMARY KEY (TIME_D) USING INDEX TCOM_RETURN_ADJ_AUDIT_PK); Program does not insert the TIME_D value. Program does not provide TIME_D; actual value is obtained from table definition which has DEFAULT current_timestamp (see above); The code that does the insert: PROCEDURE log_audit_info (p_msg_i IN VARCHAR2) IS PRAGMA AUTONOMOUS_TRANSACTION; BEGIN INSERT INTO tcom_return_adj_audit (record_number, msg, run_date) VALUES (v_read_cnt, p_msg_i, v_run_date); COMMIT; END log_audit_info; THE ERROR ORA-00001: unique constraint (COM_APP.TCOM_RETURN_ADJ_AUDIT_PK) violated The server clock was not changed, already looked into this as a possibility. Thanks, Mike -- Niall Litchfield Oracle DBA http://www.orawin.info
Please visit our website at http://financialservicesinc.ubs.com/wealth/E-maildisclaimer.html for important disclosures and information about our e-mail policies. For your protection, please do not transmit orders or instructions by e-mail or include account numbers, Social Security numbers, credit card numbers, passwords, or other personal information.