导出数据、生成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,依据依赖等级高低,从低到高,一个一个的导出表的数据,生
相关文档:
要得到某一天是星期几,需要用到 SQL Server 中的日期函数:datename()。 今天是星期几,例子 1: 1: set language N'English'
2: select datename(weekday, getdate())
3:
4: Wednesday
今天是星期几,例子 2:
1: set language N'Simplified Chinese'
......
测试人员要掌握的基本的SQL语句(上)
  ......
SQL Server之分布式事务
收藏
--> Title : SQL Server之分布式事务
--> Author : wufeng4552
--> Date : 2009-11-11
SQL Server之分布式事务
(一)概念:
分布式事务是涉及来自两个或多个源的资源的事务。Microsoft® SQL Serv ......
本文转载: http://hi.baidu.com/%D2%BB%C6%F0%C8%A5%CC%DF%C7%F2/blog/item/802027355899fe83a61e12ee.html
使用SQLQuery
对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery
()
获取这个接口。最简单的情况下,我们可以采用以下形式:
List
cats
=
sess.createSQLQuery
(
......
You can user PL SQL Developer in Ubuntu like in Windows:
1.download PL/SQL Developer for linux;
2.Install JDK berfore the next;
3.install the PL/SQL Developer;
4.goto the $PL/SQL Developer,run sh sqldeverloper.sh;
5.type the $JDK;
6.then the PL/SQL Developer will startup. ......