博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oralce存储过程实现不同用户之间的表数据复制
阅读量:4694 次
发布时间:2019-06-09

本文共 1811 字,大约阅读时间需要 6 分钟。

create or replace procedure prc_test123 is    temp_columns varchar2(4000);    sqltemp varchar(20000);    cursor cur is select table_name from  user_tables a where a.table_name like 'ZY%';    c_row cur%rowtype;    cursor t_cur(tablename varchar2) is select column_name from user_tab_columns a where a.table_name=tablename order BY column_name;    --type table_cur_type is ref cursor;    primaryLKey varchar2(20);begin      for c_row in cur loop        temp_columns:='';        for t_c_row in t_cur(c_row.table_name) loop            if temp_columns is null or temp_columns='' then                dbms_output.put_line(temp_columns);                temp_columns:=t_c_row.column_name;            else                 temp_columns:=temp_columns||','||t_c_row.column_name;            end if;        end loop;        --取出主键        select column_name into primaryLKey from user_cons_columns cu,         user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name =c_row.table_name;        --插入没有的主键数据        sqltemp:='insert into '||c_row.table_name ||' a ('||temp_columns||')  SELECT  '||temp_columns||'  from data_manage.'||c_row.table_name ||' b where not exists(select 1 from '||c_row.table_name ||' c where c.'||primaryLKey||'=b.'||primaryLKey||')';        execute immediate  sqltemp;        --更新已有的主键数据        sqltemp:='update '||c_row.table_name ||' a set ('||temp_columns||') = (SELECT  '||temp_columns||'  from data_manage.'||c_row.table_name ||' b where  b.'||primaryLKey||'=a.'||primaryLKey||') where exists(select 1 from data_manage.'||c_row.table_name||' y where a.'||primaryLKey||'=y.'||primaryLKey||')';        execute immediate  sqltemp;      end loop;end;

   对于不同用户下同一张表的数据进行复制,已有数据进行更新,没有的数据进行插入

转载于:https://www.cnblogs.com/many-object/p/8435761.html

你可能感兴趣的文章
Android之使用AchartEngineActivity引擎绘制柱状图、曲线图
查看>>
android对象巧用Android网络通信技术,在网络上直接传输对象
查看>>
android下载手动下载Android SDK
查看>>
oracle12c(oracle12.1.0.1.0)安装指南--实测OEL5.9(RH5)
查看>>
北京邮电大学 程序设计课程设计 电梯 文件输入版本(已调试,大致正确运行==)...
查看>>
HashMap的两种排序方式
查看>>
Spring的第一个例子
查看>>
从Firefox升级说学习方法
查看>>
C++学习:任意合法状态下汉诺塔的移动(原创)
查看>>
【杂文】记一些有用的神奇网站
查看>>
什么是“闭包”(closure)为什么要用它?
查看>>
log4j2简单使用
查看>>
wget使用小技巧
查看>>
学霸修炼的秘籍
查看>>
Duplicate 复制数据库 搭建Dataguard
查看>>
Java导入execl
查看>>
Js中的window.parent ,window.top,window.self 详解
查看>>
next
查看>>
数据库---表---多表查询
查看>>
【分享】常用获取IP及地区信息API
查看>>