I can't seem to create the table inside this procedure. I read it online that for any DDL, I need to use EXECUTE IMMEDIATE and tried following few examples online. However, even after trying several solutions it keeps failing. '
Error ""ORA-00904: "End": invalid identifier ORA-06512: at "EXTRACT_AUTOMATED_CHECKS", line 89 "
CREATE OR REPLACE PROCEDURE EXTRACT_AUTOMATED_CHECKS AS
BEGIN
--DROP TABLE
BEGIN
EXECUTE IMMEDIATE ('DROP TABLE extract_checks') ;
EXCEPTION
WHEN OTHERS THEN NULL;
END;
--CREATE TABLE, INDEX
--TABLE
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE extract_checks
(
Card number(19) NOT NULL PRIMARY KEY
,Customer_Id number(19)
)';
COMMIT;
END;
--INDEX
BEGIN
EXECUTE IMMEDIATE('CREATE INDEX IDX_EXT_CHECKS extract_checks(Customer_Id)');
COMMIT;
END;
SOURCE.DBA_SEND_MAIL(
V_FROM=>'[email protected];',
V_RECIPIENT => '[email protected]',
V_SUBJECT => 'Automated Checks Completed',
V_MESSAGE => 'Automated Checks Completed' );
EXCEPTION WHEN OTHERS THEN
SOURCE.DBA_SEND_MAIL(
V_FROM=>'[email protected];',
V_RECIPIENT => '[email protected]',
V_SUBJECT => 'Automated Checks Failed',
V_MESSAGE => 'Automated Checks Failed' );
RAISE;
END EXTRACT_AUTOMATED_CHECKS;
PIVOTclause if you need to show the data in columns rather than rows. - Wernfried Domscheit"End"is in double-quotes. Maybe you meant to use two single quotes (''End'')? - William Robertson