总结

SQL工作总结--

--1. 数据库包的创建
  包:
  create or replace package package_name is
  --里面可以添加 存储过程 存储过程下面可以添加函数。
  end crm_detl_cust_acct;
  包体:
  create or replace package body package_name is
 
--2. 数据库存储工程的创建
   procedure procude_name( parameter) is
    变量(全局变量使用)
    begin
       中间处理过程
    end;
       
--3. 数据库函数的创建使用
   function  function_name(parameter ) return varchar2 is
      定义使用到的变量
      pragma autonomous_transaction;  --自治事物
    begin
     
    ---- 函数的调用  crm_batch_util.crm_get_schema('dws',vstr => DWS);
     
      sql_str := 'truncate table crmp_cust_info';
      execute immediate sql_str ;  --写好的SQL语句执行
      commit;  --事务的提交
      --  rollback;  --事务的回滚
      rtncode:='successed'; --如果事务提交成功 程序走到此处给successed值 返回成功 successed
      return rtncode;
     
      EXCEPTION  --抛出异常信息 返回失败failed  错误提示
        when others then
          DBMS_OUTPUT.PUT_LINE(crm_batch_public.crm_gettime_fun||'----错误代码:'||SQLCODE||'---'||'错误信息:'||SQLERRM);
        return 'failed';
       
    end;

--4. 数据库中的输出语句
   dbms_output.put_line();
  
--5. 调用自己写好的函数

   xxx_yyy.aaa_bbb(); --例如 ? *参数传递的*  参数要全部传递 。。。
  
--6. 函数变量的定义
   xxx type();
  
--7. 赋值
   使用 " := "进行赋值  xxx := ' aaa ';
  
--8. 查询一个表的数据作为(插入)另一个表(新表)的数据 
   insert into tablename select * from tablename1 where xx=yy;
  
--9. 使用变量的方法  '||需要拼接的变量||'

--10. SQL中当成字符串来使用的话  '''||变量||'''  "- '' -"两个逗号显示一个 ’ '再用一个'进行转译

--11. 程序中遇到,指针传递参数的,在数据库中先写一个函数,传递参数,在调用主要函数
  function crm_acct_save_fun(wrkdate varchar2) return varchar2 is
      rtncode varchar2(10);
      pragma autonomous_transaction;
      begin
 --传入参数。
        execute immediate 'select crm_detl_cust_acct.crm_acct_save_proc_fun(:1,:2,:3,:4) from dual' into rtncode using wrkdate,'crm_acct_save','dmb_org_save','04';
        DBMS_OUTPUT.PUT_LINE(rtncode);
        if rtncode = 'failed' then
          return rtncode;
        else
        execute immediate 'select crm_detl_cust_acct.crm_acct_save_proc_fun(:1,:2,:3,:4) from dual' into rtncode using wrkdate,'crm_acct_save','dmb_org_save','05';       
        end if;
      rtncode:='successed';
      return rtncode;   
      EXCEPTION
      when others then
      DBMS_OUTPUT.PUT_LINE(crm_batch_public.crm_gettime_fun||'----错误代码:'||SQLCODE||'---'||'错误信息:'||SQLERRM);
      return 'failed';      
    end;  
  --主要函数 (然后里面直接使用其变量就可以了。 wrkdate  d_tbl  s_tbl  acc_cata )
  function  crm_acct_save_proc_fun(wrkdate varchar2,d_tbl varchar2,s_tbl varchar2,acc_cata varchar2) return varchar2 is
      rtncode varchar2(10);
      sql_str varchar2(32767);
      DWG varchar2(10);
      pragma autonomous_transaction;
    begin
      dbms_output.put_line(crm_batch_public.crm_gettime_fun||'----进行'||wrkdate||'日的企业存款账户数据处理' );
     
      crm_batch_util.crm_get_schema('dwg',vstr => DWG);
     
      dbms_output.put_line(crm_batch_public.crm_gettime_fun||'----正在清除'||d_tbl||'当年'||acc_cata||'数据' );
      sql_str := 'delete from '||d_tbl||'
      where year_id= '''||substr(wrkdate,1,4)||''' and account_cate='''||acc_cata||' ''';
      dbms_output.put_line(sql_str);
      execute immediate sql_str;
      commit;
     
      dbms_output.put_line(crm_batch_public.crm_gettime_fun||'----正在生成'||d_tbl||'当年'||acc_cata||'数据' );
      sql_str := ' insert into '||d_tbl||'
         select account_id,year_id,owner_org_id,manage_org_id,currency_code,
         product_id,product_inner_id,customer_id,account_name,account_group_id,
         account_cstm_id,account_status,account_attrib,account_cata,intrate_code,
         interest_rate,open_date,expire_date,close_date,curr_date,
         term_code,terms,para,para_bal,lst_accum,y_balance,balance,
         accum,accum0,accum1,accum2,accum3,accum4,accum5,
         accum6,accum7,accum8,accum9,accum10,accum11,accum12,
         bal0,bal1,bal2,bal3,bal4,bal5,bal6,bal7,bal8,bal9,bal10,bal11,bal12
         from '||DWG||'.'||s_tbl||'
         where year_id='''||substr(wrkdate,1,4)||''' and account_cata='''||acc_cata||''' ';
      execute immediate sql_str;
      commit;
   --
     rtncode:='successed';
      return rtncode;
     
      EXCEPTION
        when others then
        DBMS_OUTPUT.PUT_LINE(crm_batch_public.crm_gettime_fun||'----错误代码:'||SQLCODE||'---'||'错误信息:'||SQLERRM);
        return 'failed';
    end;
 
 --12. loading。。。
    常量 ,变量拼接 传过来的 ‘’ 标识

转载于:https://my.oschina.net/u/1758069/blog/512178

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值