【发布时间】:2017-06-10 20:42:46
【问题描述】:
我有一个关于 ORACLE 的问题,我写了一个 PLSQL 代码来检查一个表是否存在,如果它存在然后我从这个表中选择一些东西。伪代码就像:
如果(表存在) 从表中选择......
问题是如果表不存在我总是会出错,即使 if 条件从未满足并且 select 语句从未执行。
我认为这是因为在编译时检查了我的代码:“select from..”,然后如果表不存在则打印错误。我该如何解决这样的问题?...这是我的代码的样子(我使用了通用名称):
DECLARE
v_table_exists NUMBER;
BEGIN
SELECT NVL(MAX(1), 0)
INTO v_table_exists
FROM ALL_TABLES
WHERE TABLE_NAME = 'TABLE_TEST';
IF v_table_exists = 1 THEN
INSERT INTO MY_TABLE(COLUMN1, COLUMN2, COLUMN3, COLUMN4)
SELECT 1234,
5678,
T.COLUMN_TEST1,
T.COLUMN_TEST2
FROM TABLE_TEST T
WHERE T.FLAG = 1;
END IF;
END;
【问题讨论】:
-
我编辑了我的问题,发布了一个例子