我正在尝试编写一个非常简单的 sql 脚本: select * from table_X; 如果有的话,我想在 oracle sqlplus 中查看结果。这些结果对于进一步分析很重要。还要提一下,这取决于最初创建了多少表,因此 table_X 可能根本不在数据库中。但是我想避免在解析时出现错误,在上面运行该脚本时 table_X 不存在。
所以我试图将该 SQL 包装到一些 PLSQL 动态代码中,如下所示:
Define table_X="MY_TAB"
DECLARE
stmt_ VARCHAR2(2000);
exist_ number := 0;
CURSOR table_exist IS
SELECT 1
FROM user_tables
WHERE table_name = '&table_X';
BEGIN
OPEN table_exist;
FETCH table_exist INTO exist_;
CLOSE table_exist;
IF exist_ = 1 THEN
stmt_ := 'SELECT * FROM &table_X';
EXECUTE IMMEDIATE stmt_;
ELSE
dbms_output.put_line('This functionality is not installed.');
END IF;
END;
/
- 如果 MY_TAB 中有数据,为什么我看不到任何结果(记录)?我真的需要绑定一些列并使用 ex. dbms_output 能看到一些信息吗?
- 如果该表不存在(理想情况下仅使用 SQL),是否有任何简单的方法来查询表而不获取“ORA-00942:表或视图不存在”?
提前致谢