create or replace procedure update_CarryoverArchivers(bizsysname in varchar,

year       in number default 2015) is

begin

declare

num    number;

objSql varchar(1000);

i      number;

begin

num := -1;

select count(*) into num from bd_doc_type where iyear = year;

if num >= 1 then

null;

end if;

if num = 0 then

objSql := 'insert into BD_DOC_TYPE select sdoc_type_code,sdoc_type_name,sshort_text,smudole,' || year ||

',stype,sprinttemplatecode, ''' || year ||

'/01/01 16:51:32'' from BD_DOC_TYPE where iyear=' ||

to_char(year - 1);

/*dbms_output.put_line(objSql);*/

execute immediate objSql;

end if;

num := -1;

select count(*) into num from sm_billtype where iyear = year;

if num >= 1 then

null;

end if;

if num = 0 then

objSql := 'insert into sm_billtype select scode,sname,sbilltypetitle,' || year ||

',''' || year ||

'/12/12 15:03:40'' from sm_billtype where iyear=' ||

to_char(year - 1);

/* dbms_output.put_line(objSql);*/

execute immediate objSql;

end if;

num := -1;

select count(*) into num from bd_fyearstruct_m where iyear = year;

if num >= 1 then

null;

end if;

if num = 0 then

objSql := 'insert into ' || bizsysname || '.BD_FYEARSTRUCT_M (IYEAR, DY_STARTDATE, DY_ENDDATE, IPERIODNUM, BCLOSED, BACTIVEYEAR, TS)

values (' || year || ', ''' || year || '0101'', ''' || year ||

'1231'', 12, ''n'', ''Y'', ''' || year ||

'/01/01 20:33:38'')';

dbms_output.put_line(objSql);

execute immediate objSql;

dbms_output.put_line('xxx');

end if;

num := -1;

i   := 1;

select count(*) into num from bd_fyearstruct_s where iyear = year;

if num >= 1 then

null;

end if;

if num = 0 then

while i <= 12 loop

objSql := ' insert into ' || bizsysname || '.BD_FYEARSTRUCT_S (SPERIODCODE, IYEAR, DP_BEGINDATE, DP_ENDDATE, SPERIODNAME, BCLOSED, BACITVE, TS)

values (''' || year || '-0' || to_char(i) || ''',' || year ||

', ''' || year || '0' || to_char(i) ||

'01'',to_char(add_months(to_date(''' || year || '0' || to_char(i) ||

'01'', ''yyyymmdd''), 1)-1,''yyyymmdd''),''第' || to_char(i) ||

'期'', ''N'', null, ''1999/05/25 11:33:53'') ';

dbms_output.put_line(objSql);

execute immediate objSql;

i := i + 1;

end loop;

end if;

num := -1;

select count(*) into num from sm_billrule where iyear = year;

dbms_output.put_line(num);

if num >= 1 then

null;

end if;

if num = 0 then

objSql := 'insert into sm_billrule select SID, SBILLTYPECODE, BIFSHOWBILLTITLE, BYEAR, BMONTH, BDAY, BIFORDERNUMBER, INUMBERLEN, BIFSHOWOBJID, SPERIODCODE, SCORPCODE,' || year ||

' from sm_billrule where iyear=' || to_char(year - 1);

dbms_output.put_line(objSql);

execute immediate objSql;

end if;

commit;

Exception

When others then

dbms_output.put_line('你出错了'||sqlcode||sqlerrm);

Rollback;

end;

end update_CarryoverArchivers;

---------

存储过程的执行

begin

update_CarryoverArchivers;

end;

oracle 存储过程基础的更多相关文章

  1. oracle 存储过程 基础

    差不多一年没写过存储过程,最近要写,发现基本忘了,google一番之后,觉得很有必要把基础的东西写下来备忘. 语句块定义: decalre -- 变量声明 var1 ); -- 仅声明 var2 ) ...

  2. Oracle存储过程基础

    http://blog.sina.com.cn/s/blog_67e424340100iyg1.html

  3. Oracle 存储过程学习笔记

    1.存储过程简单实例 CREATE OR REPLACE PROCEDURE 存储过程名称 (参数in,参数out) AS -- 变量声明,每个声明用分号结束.可以在声明的同时初始化 name ); ...

  4. Oracle存储过程基本语法及基础教程

    存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...

  5. Oracle数据库基础知识

    oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...

  6. oracle存储过程实例

    oracle存储过程实例 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的P ...

  7. [转]使用ADO.NET访问Oracle存储过程

    本文转自:http://www.cnblogs.com/datasky/archive/2007/11/07/952141.html 本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程( ...

  8. oracle存储过程的例子

    oracle存储过程的例子 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的 ...

  9. Crontab定时执行Oracle存储过程

    Crontab定时执行Oracle存储过程 需求描述 我们有一个Oracle的存储过程,里面是每个月需要执行一下,生成报表,然后发送给业务部门,这一个功能我们有实现在系统的前台界面(如图1-1),但是 ...

随机推荐

  1. objective-c 条件运算符

    条件运算符 val1!=0 ? val1:val2 等价于 val1?val2

  2. (转)js:字符串(string)转json

    第一种方式: 使用js函数eval(); testJson=eval(testJson);是错误的转换方式. 正确的转换方式需要加(): testJson = eval("(" + ...

  3. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  4. 命令行编译运行Java

    首先要安装JDK,然后设置环境变量Path,添加C:\Program Files (x86)\Java\jdk1.8.0_66\bin 然后建立一个名为j.java的文件,里面加入如下代码: publ ...

  5. Oracle用户信息查询

    1.查看所有用户: select * from dba_users;    select * from all_users;    select * from user_users; 2.查看用户或角 ...

  6. 写sql语句连接的时候注意的一个小细节

    我在写权限的查询的时候,用到了sql语句的链接写一下出错的时候的代码 $sqlpid="select auth_name from sw_auth where auth_level=0&qu ...

  7. diff和patch配合使用(转载备用)

    Linux下diff与patch命令的配合使用 在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diffdiff命令用于比较文件的差异,可以用于制作patch文件 ...

  8. poj 2186 tarjan求强连通分量

    蕾姐讲过的例题..玩了两天后才想起来做 貌似省赛之后确实变得好懒了...再努力两天就可以去北京玩了! 顺便借这个题记录一下求强连通分量的算法 1 只需要一次dfs 依靠stack来实现的tarjan算 ...

  9. unity中Debug输出控制

    1 需求: (1)选择在界面.console中输出,并且能够设置保存到文档 (2)控制debug是否输出,可以在debug模式下输出,release模式下不输出 2 参考: 谢谢雨松同学的博客:htt ...

  10. /etc/hosts.conf

    一 作用       指定如何解析主机域名.可设置网络安全. 二 参数说明      默认情况,/etc/hosts.conf 文件有如下内容——      order hosts,bind     ...