• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle存储过程之数据库中获取数据实例_Oracle应用_脚本之家

mysql 搞代码 4年前 (2022-01-09) 31次浏览 已收录 0个评论

介绍Oracle数据库中获取数据的存储过程示例 ,在表A取得的数据插入另一个表B中

怎样才能将在表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 来2源gaodaima#com搞(代@码&网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
);


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle存储过程之数据库中获取数据实例_Oracle应用_脚本之家

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址