I'm trying to create a script that generates sequences for each table in my data base.
DECLARE
V_OWNER_NAME VARCHAR2(100) := 'HAZARDV2';
V_TABLE_NAME VARCHAR2(500) ;
V_PK_COLUMN VARCHAR2(500) ;
V_MAX_ID NUMBER ;
CURSOR ALL_TABLES IS
SELECT table_name
FROM all_tables
WHERE OWNER = V_OWNER_NAME
ORDER BY TABLE_NAME ;
BEGIN
FOR I IN ALL_TABLES LOOP
--STORING THE TABLE NAME RETURNED FROM CURSOR
V_TABLE_NAME := I.TABLE_NAME;
IF V_TABLE_NAME LIKE 'PS_TXN' THEN
NULL;
ELSE
-- GETTING THE PK COLUMN NAME
SELECT 'SEQ_'||NVL(column_name,999)
INTO V_PK_COLUMN
FROM all_cons_columns
WHERE
OWNER = V_OWNER_NAME AND
constraint_name = (
SELECT constraint_name FROM user_constraints
WHERE TABLE_NAME = V_TABLE_NAME AND
CONSTRAINT_TYPE = 'P'
);
----- THIS IS THE LINE THAT THE ERROR POINTS TO -------
execute immediate
'CREATE OR REPLACE SEQUENCE ' || V_PK_COLUMN || '
START WITH (SELECT NVL(MAX('||V_PK_COLUMN||'),0)+1 FROM '||V_TABLE_NAME||')
INCREMENT BY 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCACHE
ORDER';
END IF;
END LOOP;
END;
Thank you for your time.