比如三月份读写TB_LOG_03表,4月份读写TB_LOG_04表。CREATE OR REPLACE FUNCTION TESTFunc(v_ID in varchar2) return number as
PRAGMA AUTONOMOUS_TRANSACTION; --事务
v_count number(10);
Begin
--三月份查询TB_LOG_03表
select count(1) into v_count from TB_LOG_03 t where t.id = v_ID; If v_count > 0 Then
--三月份写TB_LOG_03表
insert into TB_LOG_03 (ID, Name)
values ('123','zhangsan'); commit;--提交
return 1;
Else
return 0;
End If;Exception
When Others Then
Return -1;
End GET_COUNT;
---------------------调用Function
select TESTFunc('123') AS retVal from dual;
PRAGMA AUTONOMOUS_TRANSACTION; --事务
v_count number(10);
Begin
--三月份查询TB_LOG_03表
select count(1) into v_count from TB_LOG_03 t where t.id = v_ID; If v_count > 0 Then
--三月份写TB_LOG_03表
insert into TB_LOG_03 (ID, Name)
values ('123','zhangsan'); commit;--提交
return 1;
Else
return 0;
End If;Exception
When Others Then
Return -1;
End GET_COUNT;
---------------------调用Function
select TESTFunc('123') AS retVal from dual;
解决方案 »
- 聚集函数里case的改变
- 虚心求一解决方法
- 怎么在sql 语句中调用存储过程,把存储过程返回值当成一个字段来使用?
- 一个简单的问题!oracle BLOB占多少字节
- sql检索问题
- 高分求存储过程的问题
- 如果用户为DBA,还需要给授权吗?为什么?
- 关于数据库效率问题!!!请高手给出意见-急
- 如何用命令行对View进行重编译,设置Trigger的Enabled和Disabled属性?
- 请问各位,我自己用sql语句创建表的时候,自己先创建了个表空间,可用sql语句生成表的时候,它总去系统空间,不去我创建的空间,要怎么表
- 关于数据更新问题
- linux下安装Oracle 1521端口占用问题,求解!!!
CREATE OR REPLACE FUNCTION TESTFunc(v_ID in varchar2) return number as
PRAGMA AUTONOMOUS_TRANSACTION; --事务
v_count number(10);
v_month char(2);
v_sql varchar2(2000);
Begin
select to_char(sysdate,'mm') into v_month from dual;
v_sql := 'select count(1) into '||v_count||' from TB_LOG_||v_month||' t where t.id='||v_id; execute immediate v_sql;
commit;
If v_count > 0 Then
v_sql := 'insert into TB_LOG_'||v_month||'(ID,Name) values(''123'',''zhangsan'')';
execute immediate v_sql;
commit;
return 1;
Else
return 0;
End If;Exception
When Others Then
Return -1;
End GET_COUNT;
---------------------调用Function
select TESTFunc('123') AS retVal from dual;