免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4619 | 回复: 10
打印 上一主题 下一主题

高手指点这几句是什么意思?麻烦每一句都解释一下啊!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-26 12:37 |只看该作者 |倒序浏览
call DROP_TABLE('LL_RDF_ADMIN_HIERARCHY_1');
create table LL_RDF_ADMIN_HIERARCHY_1 as
select * from RDF_ADMIN_HIERARCHY;

论坛徽章:
0
2 [报告]
发表于 2012-05-26 13:12 |只看该作者
第一句是什么意思啊????

论坛徽章:
0
3 [报告]
发表于 2012-05-26 13:15 |只看该作者
本帖最后由 anonymous0502 于 2012-05-26 13:16 编辑

调用过程DROP_TABLE并传参LL_RDF_ADMIN_HIERARCHY_1,
call DROP_TABLE('LL_RDF_ADMIN_HIERARCHY_1');

用一条查询语句来建立表LL_RDF_ADMIN_HIERARCHY_1
create table LL_RDF_ADMIN_HIERARCHY_1 as
select * from RDF_ADMIN_HIERARCHY;

论坛徽章:
0
4 [报告]
发表于 2012-05-26 13:17 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2012-05-26 13:48 |只看该作者
回复 3# anonymous0502

调用过程DROP_TABLE并传参LL_RDF_ADMIN_HIERARCHY_1,
也就是说这是调用 DROP_TABLE脚本吧???就是调用DROP_TABLE.sql 脚本,

如果第二句执行失败,那第一句也不会执行吧,它会rollback吧???


   

论坛徽章:
0
6 [报告]
发表于 2012-05-26 14:02 |只看该作者
应该是调用存储过程DROP_TABLE,大概在DROP_TABLE里除了删除表不知道还有别的什么操作,你自己看看你的DROP_TABLE存储过程,
删除表不能回滚的

第二句不太可能会失败啊,除非select的表不存在

论坛徽章:
0
7 [报告]
发表于 2012-05-26 14:13 |只看该作者
你的DROP_TABLE.sql脚本应该是个建立存储过程的脚本吧,这个脚本大概应该已经在数据库里建有相应的存储过程了,找到该过程自己看看里面做了什么操作。

论坛徽章:
0
8 [报告]
发表于 2012-05-26 14:47 |只看该作者
回复 6# anonymous0502

我的意思是select 表不存在,那第二句肯定创建不了,那么第一句还能执行吗???第一句执行结果跟第二句失败不失败有关系吗??


   

论坛徽章:
0
9 [报告]
发表于 2012-05-26 15:40 |只看该作者
第二句执行失败的话,得看第一句的存储过程里面有没有执行过提交或回滚或有没有ddl语句吧。
有较多情况,你可以只测试你实际的存储过程涉及到的情况就可以了。

以下是我在scott用户下做的一个测试:
建一张表来测试:
create table test(f1 numeric(10,2),f2 varchar2(100));
再建一个存储过程:
create or replace procedure sp_ts1(f1 numeric,f2 varchar2)
is
v1 varchar2(50);
begin
                select sysdate into v1 from dual;
                insert into test(f1,f2) values(1,v1);
                --rollback;
                --commit;
end sp_ts1;

执行两条测试语句:
call sp_ts1(1,'aa');
create table test3 as select * from test11;

我测的结果是这样:
当测试语句的第二条失败时,如果存储过程sp_ts1里既没有rollback也没有commit,也没有其他ddl语句,sp_ts1里执行的insert会成功
当测试语句的第二条失败时,如果存储过程sp_ts1里有rollback,sp_ts1里执行的insert不会成功
当测试语句的第二条失败时,如果存储过程sp_ts1里有commit,sp_ts1里执行的insert会成功

ddl是隐式提交,这个得看你的实际存储过程里的语句了,也可能你的存储过程比较复杂有嵌套事务之类的既有rollback又有commit还有ddl语句等,得你自己分析了。你也可以自己模拟来测试看看结果是什么样的啊。

论坛徽章:
0
10 [报告]
发表于 2012-05-26 17:17 |只看该作者
回复 9# anonymous0502


我查了下Drop_Tables.sql  里面的脚本是这样子的:

prompt ---- Start script "Drop_Tables.sql" ----------------------------;
prompt ----------------------------------------------------------------;


--------------------------------------------------------------------------------
--- T__SCRIPT_INFO -------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T__SCRIPT_INFO');

--------------------------------------------------------------------------------
--- Geometry -------------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T_XYZ');
execute droptable ('T_XYZ_COORD');

execute droptable ('T_NODES');

execute droptable ('T_EDGES');
execute droptable ('T_EDGE_SHAPE_XYZ');
execute droptable ('T_EDGE_NODES');
execute droptable ('T_EDGE_FACES');
execute droptable ('T_EDGE_GEOMETRY');

execute droptable ('T_FACES');
execute droptable ('T_FACE_EDGES');



--------------------------------------------------------------------------------
--- Features -------------------------------------------------------------------
--------------------------------------------------------------------------------

--- POINTS ---------------------------------------------------------------------

execute droptable ('T_POINTS');
execute droptable ('T_POINT_NODES');
execute droptable ('T_POINT_ATTSETS');
execute droptable ('T_POI_POSITION');

--- LINES ----------------------------------------------------------------------

execute droptable ('T_LINES');
execute droptable ('T_LINE_POINTS');
execute droptable ('T_LINE_EDGES');
execute droptable ('T_LINE_ATTSETS');

execute droptable ('T_LINE_ADDRESS');
execute droptable ('T_LINE_FUNC_ROAD_CLASS');

--- AREA -----------------------------------------------------------------------

execute droptable ('T_AREAS');
execute droptable ('T_AREA_FACES');
execute droptable ('T_AREA_ATTSETS');

execute droptable ('T_AREA_BUILTUP');
execute droptable ('T_AREA_ORDER8');
execute droptable ('T_AREA_FEAT_POSTCODE');

execute droptable ('T_AREA_FEAT_BUILTUP');
execute droptable ('T_AREA_FEAT_ORDER8');
execute droptable ('T_AREA_FEAT_ZONE');

--------------------------------------------------------------------------------
--- Complex Features -----------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T_COMFS');
execute droptable ('T_COMF_POINTS');
execute droptable ('T_COMF_LINES');
execute droptable ('T_COMF_AREAS');
execute droptable ('T_COMF_COMFS');
execute droptable ('T_COMF_ATTSETS');



--------------------------------------------------------------------------------
--- Relationships --------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T_RELS');
execute droptable ('T_REL_POINTS');
execute droptable ('T_REL_LINES');
execute droptable ('T_REL_AREAS');
execute droptable ('T_REL_COMFS');
execute droptable ('T_REL_ATTSETS');



--------------------------------------------------------------------------------
--- Attributes -----------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T_ATTSETS');
execute droptable ('T_ATTRIBS');
execute droptable ('T_ATTRIB_NAMES');
execute droptable ('T_ATTRIB_TIMES');
execute droptable ('T_NAMES');
execute droptable ('T_TIMES');
execute droptable ('T_RC_TIMES');
execute droptable ('T_ATTSETS_ROAD_ADDRESS');
execute droptable ('T_ATTSETS_TRAFFIC');
execute droptable ('T_ATTSETS_DIRECTION');


--------------------------------------------------------------------------------
--- Conversions --------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T_CONV_AREAS');
execute droptable ('T_CONV_COMFS');
execute droptable ('T_CONV_LINES');
execute droptable ('T_CONV_POINTS');
execute droptable ('T_EXTERNAL_UPDATE_REFS');



--------------------------------------------------------------------------------
--- Meta Records ---------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T__M_DEF_FIELDS');
execute droptable ('T__M_DEF_RECORDS');
execute droptable ('T__M_DEF_RELATIONS');
execute droptable ('T__M_DEF_ATTRIBUTES');
execute droptable ('T__M_DEF_FEATURES');
execute droptable ('T__M_DEF_NEWFEATURES');
execute droptable ('T__M_STREET_TYPES');
execute droptable ('T__M_ATTRIBUTE_VALUES');
execute droptable ('T_TMP__M_ATTRIBUTE_VALUES');
execute droptable ('T_TMP__M_STREET_TYPES');
execute droptable ('T__M_DEFAULT_ATTRIBUTE_VALUES');
execute droptable ('T__M_MAGNETS');
execute droptable ('T__M_XY_RANGE');



--------------------------------------------------------------------------------
--- Volume Header --------------------------------------------------------------
--------------------------------------------------------------------------------

execute droptable ('T__M_HEADER_VOLUMES');
execute droptable ('T__M_HEADER_DATASETS');
execute droptable ('T__M_HEADER_SECTIONS');
execute droptable ('T__M_HEADER_SECTION_BORDER');

那它还会执行第一句吗???
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP