当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle存储过程之数据库中获取数据实例

Oracle
解决Oracle 9i和Tomcat端口冲突
Oracle JOB的建立,定时执行任务
ORA-01562 和 ORA-01628 问题解决
oracle startup时 ORA-00600错误解决
解决Oracle处理中文乱码的一种方法
用Oracle10g列值掩码技术隐藏敏感数据
如何解决JOB的Interval输入参数过长
理解物化视图刷新过程中出现的约束冲突
Oracle数据库如何查询记录时给记录加锁
两种方法分析每月工作日计算程序
如何避免Oracle数据库密码出现@符号
在Oracle中使用登录触发器初始化用户会话
Oracle数据库中的数据出错的解决办法
Oracle11.2 命令行手工最简创建数据库的过程
Oracle 语句优化分析说明
ORACLE 常用函数总结(80个)
从Oracle 表格行列转置说起
EXECUTE IMMEDIATE用法小结
Oracle 创建用户及数据表的方法
oracle 在一个存储过程中调用另一个返回游标的存储过程

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 45 ::
收藏到网摘: n/a

介绍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
);