Hi
I have a script in PL/SQL to insert data into a table :
alter session set NLS_DATE_FORMAT = 'DD/MM/YY-HH:MI:SS' ;
set serveroutput on
DECLARE
cursor C1 is select date1, valeur, clef_var, id from EVV_STQR4@BDSIVOA.NTSIVOA, sensor
where clef_var = (select clef_var from c_variable@bdsivoa.NTSIVOA where ref_var= 'W093LONBT018' )
and date1 > (select lastacq from sensor where ID = (Select ID from sensor where CMT= 'W093LONBT018' ))
and CMT = 'W093LONBT018' ;
V_DATE1 DATE NULL ;
V_Nom_table varchar2(1000) ;
Stmt VARCHAR2(2000);
V_Nom_ID Varchar2(2000) ;
V_nom_seq Varchar2(2000) ;
V_VALEUR NUMBER (24,6);
V_CLEF_VAR NUMBER ;
n number ;
boucles number default 0 ;
MAX_RAW_DATE DATE NULL ;
V_VALID_DATE DATE default TO_DATE('01/01/01', 'DD/MM/YY') ;
BEGIN
For ligne in C1
Loop
exit when SQL%NOTFOUND ;
boucles := boucles + 1 ;
V_Nom_ID := TO_CHAR(ligne.ID) ;
V_DATE1 := ligne.DATE1 ;
V_VALEUR := ligne.VALEUR ;
V_nom_table := 'SAFEGE.MSR_'||V_Nom_ID;
V_CLEF_VAR := ligne.CLEF_VAR;
V_nom_seq := 'SQ_MSRID_'||V_Nom_ID||'.NEXTVAL';
stmt := 'begin SELECT '||V_nom_seq||' into :n FROM DUAL; end;';
DBMS_OUTPUT.PUT_LINE(V_nom_table) ;
EXECUTE IMMEDIATE Stmt using out n;
stmt := 'INSERT INTO '||V_nom_table||' VALUES (:1, :2, :3, :4, :5, :6, :7)';
DBMS_OUTPUT.PUT_LINE(stmt) ;
Execute immediate stmt USING n, V_DATE1, V_VALEUR, 0, V_VALID_DATE, 0, 0;
end loop ;
IF boucles != 0 THEN
stmt := 'SELECT MAX(RAW_DATE) FROM '||V_nom_table;
EXECUTE IMMEDIATE stmt INTO MAX_RAW_DATE ;
stmt := 'UPDATE SAFEGE.SENSOR SET LASTACQ=:1 WHERE ID=:2';
Execute immediate stmt USING MAX_RAW_DATE, V_NOM_ID ;
END IF;
END ;
/
EXIT
It gives the following output :
.....
INSERT INTO SAFEGE.MSR_3219 VALUES (:1, :2, :3, :4, :5, :6, :7)
SAFEGE.MSR_3219
INSERT INTO SAFEGE.MSR_3219 VALUES (:1, :2, :3, :4, :5, :6, :7)
SAFEGE.MSR_3219
INSERT INTO SAFEGE.MSR_3219 VALUES (:1, :2, :3, :4, :5, :6, :7)
DECLARE
*
ERREUR Ó la ligne 1 :
ORA-00001: unique constraint violation (SAFEGE.INDEX1)
ORA-06512: Ó ligne 34
I have been searching for the constraints of the table MSR_3219 and coul not find the constraint named INDEX1 :
SELECT owner, table_name, CONSTRAINT_NAME
FROM ALL_CONSTRAINTS
WHERE TABLE_NAME = 'MSR_3219';
result :
SAFEGE MSR_3219 PK
SAFEGE MSR_3219 SYS_C0013396
SAFEGE MSR_3219 SYS_C0013397
SAFEGE MSR_3219 SYS_C0013398
SAFEGE MSR_3219 SYS_C0013399
There is no such constraint (INDEX1) on this table
I have been searching also for constraint named 'INDEX1' :
SELECT owner, table_name, CONSTRAINT_NAME
FROM ALL_CONSTRAINTS
WHERE constraint_name like '%INDEX1%';
And the result is null.
How could I find the object affected by the constraint 'SAFEGE.INDEX1' ?
I am using Oracle 12.1.
Best regards.