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

Oracle
Excel VBA连接并操作Oracle
Oracle 外连接实现代码
oracle 存储过程和函数例子
Oracle 数据库操作类
ORACLE 分区表的设计
Oracle 用户权限管理方法
Oracle In和exists not in和not exists的比较分析
利用windows任务计划实现oracle的定期备份
ORACLE11g随RHEL5系统自动启动与关闭的设置方法
在oracle 数据库查询的select 查询字段中关联其他表的方法
plsql和tsql常用函数比对
plsql与tsql的语法不同
ASP.NET调用oracle存储过程实现快速分页
执行drop表操作后数据库无法起动
分析Oracle有时会用索引来查找数据的原因
数据从MySQL迁移到 Oracle的注意事项
快速理解Oracle归档模式的命令及参数
在Oracle里加快SQL执行的三种方法
几条常见的数据库分页 SQL 语句
Oracle9I OCP认证过程

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 58 ::
收藏到网摘: 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
);