易截截图软件、单文件、免安装、纯绿色、仅160KB

导出数据、生成SQL INSERT的方法。

在工作中常常碰到这种情况:我们需要将一个应用系统的基础数据导出来,以便基础数据下次导入到另外一个场景。
事实上,这种情况我们可以用pl/sql的功能Export Tables来实现。Export Table有三种导出方式:Oracle Export,SQL Insert,PL/SQL Developer。通常我们会使用Oracle Export,SQL Insert的功能。(第三种俺没用过,呵呵,所以这么说。)
Oracle Export是将数据导出成dmp格式的文件,这样有个麻烦,不能看到里面的内容。虽然它的速度很快,但是缺点太明显,所以至少我一般不用它。除非是导出含有clob,blob的表,才会用到这个功能。
SQL Insert是最实用的功能。当然它也有缺点,比如不能使用clob,blob。但是优点明显,就是能看到sql语句的详细内容。所以一般我用它,除非clob,blob才用export tables的功能。
实际中,一个系统可能有几百个表,但是基础数据表可能才100多个,这样使用PL/SQL的SQL Insert功能就会出现一种情况:每次我导出基础数据的时候,就要从用户的几百个表中选择那100多个表。这样很考验人的耐心的,反正我是被这个搞得头晕眼花。
正是因为我没耐心,所以就写了这片短文,希望在今后的工作中,能用更快的速度来完成导出导入功能,所以就自己做了一个方法,来完成导入导出功能,最终的效果应该是和PL/SQL里面的SQL Insert功能一样的,且个人觉得更适合本人使用(不知道适合不适合别人使用,呵呵)。
************************************************************************************************************
闲话少说,开始正题吧。
主要思路是这样的:
1,将基础数据的表名插入到临时表t_proc_init_tab中,不论顺序,表结构如下:
create table T_PROC_INIT_TAB
(
  TABLE_NAME VARCHAR2(100)
)

2,分析临时表t_proc_init_tab中所有表的依赖关系,最后算出所有表的依赖等级,插入到临时表T_PROC_CONSTRAINT_GRADE中。等级越高,标识该表依赖程度越高。后面插入数据的时候就会在后面执行。T_PROC_CONSTRAINT_GRADE的表结构如下:
create table T_PROC_CONSTRAINT_GRADE
(
  SRC_TABLE       VARCHAR2(100) not null,
  GRADE           NUMBER not null
)
算出表依赖等级,使用后面存储过程PKG_CREATE_INS_SQL.SP_DoConstraint。
3,依据依赖等级高低,从低到高,一个一个的导出表的数据,生


相关文档:

一步一步学Linq to sql(四):查询句法


select
 
描述:查询顾客的公司名、地址信息
查询句法:
var 构建匿名类型1 = from c in ctx.Customers
                      select new
    ......

SQL 学习笔记 Like操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SQL LIKE 操作符语法
SELECT column_name(s) from table_name WHERE column_name LIKE pattern
SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与 LIKE 运算符一起使用。
在 SQL 中,可使用以下通配符:
通配符
描 ......

sql重复数据处理,有唯一ID,formid有重复,留一条

/*sql重复数据处理,有唯一ID,formid有重复*/
/*查出重复的fromid*/
select formid from GaiaSaver_BUG group by formid having count(*)>1
/*删除重复formid,只留一条*/
delete from GaiaSaver_BUG  where ID not in
(select   min(ID) as ID  from  GaiaSaver_BUG  group by for ......

从SQL语言的分类谈COMMIT和ROLLBACK的用法

从功能上划分,SQL语言可以分为DDL,DML和DCL三大类。
    1. DDL(Data Definition Language) 
    数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ;
    CREATE---创建表
    ALTER---修改表
   ......

SQL中 常用的处理方法

 -- 一: 处理未查到的空值
 select
 case when exists(select EndPrice from T_stock where BOMSN='0109')
 then (select EndPrice from T_stock where BOMSN='0109')
 else 0 end
 --二:更新字段值
 --strNum 数量
 --strId  序号
 update T_buy_Pro set Co ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号