Oracle存储过程之数据库中获取数据实例
网络编程 2021-07-05 16:08www.168986.cn编程入门
介绍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 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
);
(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
);
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程