您的位置: 首页 >> 新闻中心 >> 计算机 >> IT认证 >> 计算机等级 >> 计算机三级
使用动态SQL克隆数据库对象
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点优惠价报名
金 同 方 计算机等级二级C++ 电话预约人大总部¥784
金 同 方 计算机等级二级JAVA 电话预约人大总部¥1470
理工文化 等级考试二级ACCESS电话预约理工大学教学¥676
新 东 方 C语言等级考试远程班滚动开班远程课堂¥98
金 同 方 计算机等级一级辅导班电话预约人大总部¥450

  

首先给出一个警告:下面的技巧提示如果使用不小心会造成严重的安全漏洞。当你在一个非测试环境下使用这种方法之前,一定要完完全全地理解这样做的后果。

如果你需要复制一个表并在(另一个用户名下的)另一个方案(schema)制作它的一个副本,那么你可以使用 sql*plus 的 copy 命令,或者使用简单的语句“create table foo as select * from other.foo;”,只要你在另一个用户的表上有足够的 select 权限。

然而,如果你需要对任何其它数据库对象做同样的事情,比如包、过程、函数或视图,就没有这么简单的命令了。你需要手工找出其代码并在新实例中运行它。如果能够简单“克隆对象”并让另一个用户的对象出现在自己的实例中,那将是一件非常值得高兴的事。对于为开发过程创建测试方案来说,这一点非常有用。在这个例子中,我将创建一个包,使用该包可以对大多数对象进行克隆(具有一些限制)。

要处理的主要问题是获得源代码。对象所有者通过视图user_source 可以访问源代码。而对于其它用户,如果对象被授予了execute 权限给一个用户,那么这个用户就只能看到通过视图all_source 选出的源代码。我们可以通过一个过程来封装“give me the source for your object(给我你的对象的源代码)”请求:

create or replace procedure get_source
(
    p_type          varchar2,
    p_name          varchar2,
    p_cursor out    sys_refcursor
)
as
begin
    open p_cursor for
        select text from user_source
         where type = upper(p_type) and name = p_name
          order by line;
end get_source;
/
show errors;

注意,我没有用“upper(name)”。这就意味着你必须匹配这个存储过程的字母大小写。java 存储过程使用很多大小写混合的名字。

下一篇:SQL技巧:创建用来按小时报告的查询

  要创建一个可以每个小时报告的查询,首先要创建一个表格。该表格一列记录日期,而没有时间信息;另一列记录钟点。下面的表格有一列记录了不同的处理类型。例如,我们可以按小时找出处理类型的总数。
create table test
(starttime datetime not null
default current_timestamp,
startdate datetime not null
default convert(datetime, convert(char(10),current_timestamp, 110)),
starthour int not null
default datepart(hh,current_timestamp),
trantype int not null
co...[查看详情]

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:ASP.NET中如何防范SQL注入式攻击
下一篇:SQL技巧:创建用来按小时报告的查询
 相关新闻
·跟我学SQL:(二)SELECT语句选项·跟我学SQL:(三)使用SQL子选择来合并查询
·跟我学SQL:(四)查询多个表格·跟我学SQL:(五)创建和修改表格
·跟我学SQL:(六)串行数据类型·跟我学SQL:(七)从子表里删除数据
·跟我学SQL:(八)数值数据类型·跟我学SQL:(九)datetime和interval数据类型
·关于SQLServer的若干注意事项·数据库菜鸟不可不看简单SQL语句小结
·浅谈数据库设计技巧(上)·浅谈数据库设计技巧(下)
·全国计算机等级考试三级数据库管理纲·分清SQLServer中易混淆的数据类型
·线性表的定义特征与运算·SQL技巧:创建用来按小时报告的查询
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·二级Access重点难点分析:模块
·2008年4月全国计算机等级考试调整方案
·学习攻略:清华学生谈计算机等级考试
·全国计算机等级考试机试经验三则
·计算机等级考试应如何备考
·计算机等级考试心得:考的就是细心
·计算机等级C语言上机考试改错题分析总结
·计算机等级考试二级VB10个编程技巧
·计算机等级二级C语言程序设计100例九
·计算机等级考试二级VB的复习方法
相关试题
·计算机等级考试二级Access模拟试题1
·计算机二级VisualFoxPro笔试试卷
·计算机等级考试二级C语言模拟练习一[1]
·计算机等级考试上机模拟题(二级C语言)
·Visual FoxPro语言程序设计
·历年计算机等级考试四级
·2005年4月三级网络技术笔试试卷及答案(5)
·07年4月计算机等级考试二级VF考前试题解
·07年4月计算机等级考试二级VF考前密卷
·计算机等级考试PC技术练习题:第六章常用
相关热贴
·全国计算机等级考试——评分标准
·[分享]上机编程题算法实现精选
·2007年下半年北京市全国计算机等级考试报
·C语言初学者的十八颗“地雷”
·CFA LEVEL II介绍
·2008年全国计算机等级调整方案
·C语言运算符的“优先级口决”
·Turbo C 程序设计初步
·程序员如何掌握计算机英语
·和大家分享我自己成功的经验!