广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Oracle存储过程之数据库中获取数据实例

    2018-04-16 10:56:22 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布
    怎样才能将在表A取得的数据插入另一个表B中?

      (1)对于表A和表B两个表结构完全相同的话〔字段个数,相应字段的类型等等〕,可以使用

      insert INTO B select * FROM A;

      insert INTO B(field1,field2,field3) select A.field1,A.field2,A.field3 from A;

      (2) 对于两个表如果字段数不一样,但是有几个字段的结构一样时〔类似于父子关系〕,必须使用 insert INTO B(field1,field2) select A.field1,A.field2 from A;

      1.用带参数的游标实现insert功能:

      create OR REPLACE PROCEDURE GET_DATA(

      -- 参数列表:

    n_task_id IN number, --任务编号
    v_task_name IN varchar2, --任务名称
    v_name IN varchar2 -- 名称
    )

      -----------------------------------------------

      -- PROCEDURE名 :GET_DATA --

      -- 理内容 :从数据源表取得符合条件的的数据插入到目标数据表: --

      -- 引数 :n_tas_id 任务ID, --

      -- v_task_namek 任务名称, --

      -- v_bdw_name 对数据源表限制条件:本地网名称 --

      -----------------------------------------------

      IS

      --插入行数控制

      i_count number(5);

      --取数据游标:DATA_CUR(IN_NAME)

      --参数:本地网名称:IN_NAME

    CURSOR DATA_CUR(IN_NAME VARchar2) IS /**注意:参数的定义中不带精度**/
    select *
    FROM GET_DATA_SRC A
    where A.NAME = IN_NAME;
    BEGIN

      --计数器,控制插入行数

      i_count := 0;

      --循环插入数据

    FOR MYCUR IN DATA_CUR(v_name) LOOP
    insert INTO ABC(
    ROW_ID,
    TASK_ID,
    TASK_NAME,
    GET_DATA_DT,
    CUST_ID,
    ASSIGN_FLAG,
    DEAL_DATE
    )VALUES(
    SEQ_KD.NEXTVAL,
    N_TASK_ID,
    V_TASK_NAME,
    SYSDATE,
    MYCUR.CUST_ID,
    'N',
    NULL
    );

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告