【发布时间】:2018-11-16 05:36:29
【问题描述】:
我正在编写一个函数来检查表是否为空,并将表名作为参数传递。这是我的代码:
CREATE OR REPLACE FUNCTION EMPTY_TABLE (table_name IN VARCHAR2)
RETURN NUMBER
IS
Is_empty NUMBER;
v_SQL VARCHAR(1000);
BEGIN
v_SQL:= 'SELECT CASE
WHEN EXISTS(SELECT 1 FROM ' || table_name || ')
THEN 1
ELSE 0
END INTO Is_empty
FROM DUAL';
execute immediate v_SQL;
RETURN Is_empty;
END EMPTY_TABLE;
/
这段代码编译没有错误,但是当我执行它时,我得到错误:ORA-00905:缺少关键字。 Select Itself 工作正常,我只是遇到了如何编写将表名与它连接起来的动态 SQL 的问题。任何帮助表示赞赏!
【问题讨论】:
标签: sql oracle plsql oracle11g