I'm trying to store strings and concatenate using variables in my sql code but I keep getting errors. This is what I tried:
DECLARE
ENV VARCHAR(9999);
MV VARCHAR(999);
MVNAME VARCHAR(999) := 'TEST2';
BEGIN
-- GET ENVIRONMENT
SELECT sys_context('USERENV','DB_NAME')
INTO ENV
FROM DUAL;
MV := 'CREATE MATERIALIZED VIEW' || MVNAME ||
'COMPRESS
NOLOGGING
PARTITION BY HASH (DATAID)
PARTITIONS 16
PARALLEL
BUILD IMMEDIATE
USING INDEX
REFRESH
NEXT trunc(SYSDATE, ''hh'') + 1/24
FAST
WITH ROWID
USING DEFAULT LOCAL ROLLBACK SEGMENT
ENABLE QUERY REWRITE AS ';
IF ENV = 'CSTMP' THEN
execute immediate MV || 'SELECT count(m.work_ownerid)
FROM MV_WWORK_SHRUNK m
WHERE WORK_STATUS = 2';
ELSIF ENV = 'PROD' THEN
execute immediate MV || 'SELECT count(m.work_ownerid)
FROM MV_WWORK_SHRUNK m
WHERE WORK_STATUS = 2';
ELSE
execute immediate MV || 'SELECT count(m.work_ownerid)
FROM MV_WWORK_SHRUNK m
WHERE WORK_STATUS = 2';
END IF;
END;