CREATE OR REPLACE FUNCTION is_exit (i_n IN NUMBER)
RETURN NUMBER
IS
vc_year VARCHAR2 (4)
:= TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE), -1),
'yyyy');
vc_month VARCHAR2 (2) := TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE), -1),
'mm');
vc_tab VARCHAR2 (30);
n_exit NUMBER;
vc_sql VARCHAR2 (1024);
BEGIN
vc_tab := 'product_' || vc_year || vc_month;
vc_sql := 'select count(1) into n_valid from ' || vc_tab;
--- 这个地方编译是没问题的。表名每月都变化,不知道这个地方怎么调用拼凑起来的表名。
RETURN n_exit;
END;
函数功能 是输入一个数字,判断是否在每月有规律生成的表中, 比方product_201308
这个地方不知道如何带入。函数调用会出错 ORA-00905: 缺失关键字 我知道错误在动态语句不能用 select into ,但这个地方该如何改?
RETURN NUMBER
IS
vc_year VARCHAR2 (4)
:= TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE), -1),
'yyyy');
vc_month VARCHAR2 (2) := TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE), -1),
'mm');
vc_tab VARCHAR2 (30);
n_exit NUMBER;
vc_sql VARCHAR2 (1024);
BEGIN
vc_tab := 'product_' || vc_year || vc_month;
vc_sql := 'select count(1) into n_valid from ' || vc_tab;
--- 这个地方编译是没问题的。表名每月都变化,不知道这个地方怎么调用拼凑起来的表名。
RETURN n_exit;
END;
函数功能 是输入一个数字,判断是否在每月有规律生成的表中, 比方product_201308
这个地方不知道如何带入。函数调用会出错 ORA-00905: 缺失关键字 我知道错误在动态语句不能用 select into ,但这个地方该如何改?
解决方案 »
- 在oracle中取第10条记录到第20条记录
- 求两张表的数据合并sql,期望高手解答
- oracle下插入特殊字符
- 给大家出个数据库的题,高手来!
- oracle sql 语句
- ORACLE 触发器如何update最新insert的数据
- 高分求简单问题>>sqlplus能登陆,但plsql却不能登陆.
- 请教大家,高难度触发器问题(insert的时候update本身的某个字段)
- A pl/sql problem , need ur assistant!
- 急!!急!!我在RH7.1安装oracle9i时 .runinstall 一直wait是怎么会事??
- 各位老大,谁能给个数据库学习资料
- Oracle存储过程时间参数问题求救。。。。。
execute immediate vc_sql;
execute immediate vc_sql into n_valid;
execute immediate vc_sql into n_valid; if n_valid >0 then
--存在
else
--不存在
end if;