起步于系统工程师,迈进入测试工程师,从起初的C/S系统到互联网时代的B/S系统,从事过电信增值业务、软交换、烟草OA、公安技侦和电子商务等行业的软件测试开发和管理多年,愿与大家共同分享共同交流,关注软件项目管理、测试团队管理、软件流程控制和软件性能测试及自动化测试技术。互联网时代,技术推动进步,欢迎人才推荐:jonas.wangl@alibaba-inc.com

发布新日志

  • SQL中存储过程的作用是什么

    2009-11-18 17:51:55

      很多QA在测试数据库的存储过程案例,常常会问存储过程到底是干嘛用的,有什么作用呢,我结合一些资料整理了下,可做为一个参考,欢迎发表意见和建议。 

      我们通常说存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数来执行它。

      在SQL Server 的系列版本中存储过程分为两类:系统提供的存储过程和用户自定义存储过程。系统过程主要存储在master 数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQL Server 提供支持。通过系统存储过程,MS SQL Server 中的许多管理性或信息性的活动(如了解数据库对象、数据库信息)都可以被顺利有效地完成。尽管这些系统存储过程被放在master 数据库中,但是仍可以在其它数据库中对其进行调用,在调用时不必在存储过程名前加上数据库名。而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动创建。用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。在本章中所涉及到的存储过程主要是指用户自定义存储过程。

     那么存储过程的优点有哪些呢?

     当利用MS SQL Server 创建一个应用程序时,Transaction-SQL 是一种主要的编程语言。若运用Transaction-SQL 来进行编程,有两种方法。其一是,在本地存储Transaction- SQL 程序,并创建应用程序向SQL Server 发送命令来对结果进行处理。其二是,可以把部分用Transaction-SQL 编写的程序作为存储过程存储在SQL Server 中,并创建应用程序来调用存储过程,对数据结果进行处理存储过程能够通过接收参数向调用者返回结果集,结果集的格式由调用者确定;返回状态值给调用者,指明调用是成功或是失败;包括针对数据库的操作语句,并且可以在一个存储过程中调用另一存储过程。

      我们通常更偏爱于使用第二种方法,即在SQL Server 中使用存储过程而不是在客户计算机上调用Transaction-SQL 编写的一段程序,原因在于存储过程具有以下优点:

       存储过程允许标准组件式编程

      存储过程在被创建以后可以在程序中被多次调用,而不必重新编写该存储过程的SQL 语句。而且数据库专业人员可随时对存储过程进行修改,但对应用程序源代码毫无影响(因为应用程序源代码只包含存储过程的调用语句),从而极大地提高了程序的可移植性。

  • 数据库中的索引、视图和存储过程的关系

    2009-11-18 17:40:08

       视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在 Transact-SQL 语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:将用户限定在表中的特定行上。例如,只允许雇员看见工作跟踪表内记录其工作的行。 将用户限定在特定列上。 例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而 不能看见任何包含工资信息或个人信息的列。 将多个表中的列联接起来,使它们看起来更像一个表。聚合信息而非提供详细信息。 例如,显示一个列的和,或列的最大值和最小值。

       索引分聚簇索引,非聚簇索引和唯一索引,一个表里只允许一个聚簇索引,聚簇表示的是数据的物理存储,索引可以提高查找速度,但是会减低修改和插入速度,所以一个表里不适宜多建立索引,对于简单的表我们无须建立索引。 存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。

       存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点:可以在单个存储过程中执行一系列 SQL 语句。 可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快

  • [论坛] oracle之SQL学习笔记

    2008-11-05 17:41:55

    现在软件测试的数据库,很多是用oracle数据库,以前使用MY-sql的一些查询语句中oracle中可能不能通用,下面是我很久以前看oracle技术时整理的一些sql语句,希望能对新人或是想学习oracle中的sql语句提供帮助

    oracle_sql笔记.rar
    (2008-10-30 13:55:04, Size: 2.35 kB, Downloads: 77)

  • Oracle常见错误及处理办法(整理)

    2008-11-05 14:02:55

     

       没有人会否认ORACLE是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如

    此),甚至有些无情--总会给layman们一个个无情的错误号。下面是我个人的总结,条条有用,希望能给初学者一点启示。

    1、ORA-12541:TNS:没有监听器

      原因:没有启动监听器或者监听器损坏。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删除!)

    2、ORA-12500:TNS:监听程序无法启动专用服务器进程
      或
      ORA-12560:TNS:协议适配器错误

      原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。

    Oracle认证最新题库,到www.pass4side.cn

    3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:

      1)ORADIM -DELETE -SID oradb 删除数据库服务项
      2)ORADIM -NEW -SID oradb 新增数据库服务项
      注:这个过程中如果出错,就重启计算机!

    4、ORA-12154:TNS:能解析服务名

      原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。

    5、ORA-1034 :TNS:ORACLE不可用

      原因:ORACLE的数据库服务正确启动,但是数据库没有打开!

      使用命令:

      1)svrmgrl 启动服务管理器
      2)connect internal 以internal身份登陆
      3)startup 打开数据库

    6、ORA-12560:TNS:协议适配器错误(顽固性的)

      原因:未知。

      解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!

Open Toolbar