CREATE OR REPLACE PROCEDURE p_test( in_view_name IN VARCHAR2) AS flg NUMBER; sqlstr VARCHAR2(100); BEGIN SELECT 1 INTO flg FROM all_views WHERE view_name = in_view_name; IF SQL%FOUND THEN sqlstr:='drop view '||in_view_name; EXECUTE immediate sqlstr; END IF ; EXCEPTION WHEN no_data_found THEN dbms_output.put_line('The view does not exist'); END ;使用一个存储过程,传入参数视图名,判断是否存在,如存在则drop,否则打印提示
直接drop view view_name;假如有则删除成功,没有则报ORA-00942: table or view does not exist、
①直接执行Drop view view_name 就可以删除,会有提示。 ②如果只是想重建该视图的话,前面加上CREATE OR REPLACE VIEW xxx(View名称) 就可以了,不用特意去删。
直接drop,如果没有就会报错 你要干什么用啊
如果要查询是否存在就执行 SELECT * FROM User_Views WHERE view_name LIKE UPPER('%view1%');如果要删除则执行 DROP VIEW view1;
PROCEDURE p_test(
in_view_name IN VARCHAR2)
AS
flg NUMBER;
sqlstr VARCHAR2(100);
BEGIN
SELECT 1 INTO flg FROM all_views WHERE view_name = in_view_name;
IF SQL%FOUND THEN
sqlstr:='drop view '||in_view_name;
EXECUTE immediate sqlstr;
END IF ;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('The view does not exist');
END ;使用一个存储过程,传入参数视图名,判断是否存在,如存在则drop,否则打印提示
②如果只是想重建该视图的话,前面加上CREATE OR REPLACE VIEW xxx(View名称) 就可以了,不用特意去删。
你要干什么用啊
SELECT * FROM User_Views WHERE view_name LIKE UPPER('%view1%');如果要删除则执行
DROP VIEW view1;