ORA-00950: 無效的 DROP 選項
以上是我得到的錯誤。我撰寫了這個程序來從 emp_1 表中洗掉所有索引。那么任何人都可以幫我找出錯誤并修復這個錯誤嗎?
ORA-00950: 無效的 DROP 選項
以上是我得到的錯誤。我撰寫了這個程序來從 emp_1 表中洗掉所有索引。那么任何人都可以幫我找出錯誤并修復這個錯誤嗎?
CREATE OR REPLACE NONEDITIONABLE PROCEDURE sp_drop_indexes (
p_table_name IN VARCHAR2,
p_errormsg OUT VARCHAR2 )
IS
v_sql VARCHAR2(1000);
CURSOR get_indexes IS
SELECT index_name
FROM user_indexes
WHERE table_name = 'EMP_1';
BEGIN
FOR rec IN get_indexes LOOP
v_sql := 'DROP INDEX' || rec.index_name;
EXECUTE IMMEDIATE v_sql;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
p_errormsg := sqlerrm;
END sp_drop_indexes;
提前致謝
提前致謝
uj5u.com熱心網友回復:
DROP INDEX您在代碼中(但仍在引號內)之后缺少一個空格:
v_sql := 'DROP INDEX ' || rec.index_name;
uj5u.com熱心網友回復:
確保在DROP INDEX關鍵字后包含一個空格:
v_sql := 'DROP INDEX ' || rec.index_name;
uj5u.com熱心網友回復:
洗掉索引后需要一個空格,如果索引名稱區分大小寫,則需要雙引號:
CREATE OR REPLACE NONEDITIONABLE PROCEDURE sp_drop_indexes (
p_table_name IN VARCHAR2,
p_errormsg OUT VARCHAR2 )
IS
v_sql VARCHAR2(1000);
CURSOR get_indexes IS
SELECT index_name
FROM user_indexes
WHERE table_name = 'EMP_1';
BEGIN
FOR rec IN get_indexes LOOP
v_sql := 'DROP INDEX "' || rec.index_name || '"';
EXECUTE IMMEDIATE v_sql;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
p_errormsg := sqlerrm;
END sp_drop_indexes;
/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457333.html
