下面是確定表是否存在然後刪除/創建表的PL/SQL腳本。如果它不存在,反正創建表。所以,當我跑的劇本,我收到了以下:如何使用EXECUTE IMMEDIATE語句糾正PL/SQL腳本中的ORA-00904錯誤?
ORA-00904:「E」:無效的標識符
我認爲語法準確和雙引號「E」是正確,但顯然,不是。請指教。
謝謝。
DECLARE
l_cnt NUMBER;
BEGIN
SELECT COUNT(*)
INTO l_cnt
FROM dba_tables
WHERE owner = 'ABCD'
AND table_name = 'SEC_REC_TEMP';
IF(l_cnt > 0)
THEN
EXECUTE IMMEDIATE 'DROP TABLE sec_rec_temp';
EXECUTE IMMEDIATE 'CREATE TABLE sec_rec_temp
AS
SELECT is.inv_num
FROM abcd.inv_summ is
,abcd.bill_fee bf
WHERE is.inv_num = bf.inv_num
AND trim(bf.fee_type) = "E"
GROUP BY is.inv_num';
ELSE
EXECUTE IMMEDIATE 'CREATE TABLE sec_rec_temp
AS
SELECT is.inv_num
FROM abcd.inv_summ is
,abcd.bill_fee bf
WHERE is.inv_num = bf.inv_num
AND trim(bf.fee_type) = "E"
GROUP BY is.inv_num';
END IF;
END;
/