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

pl/sql 实现归并算法

在网上看到关于归并算法,没有数据库级的,当然数据级的算法对于数据库来说就是一个排序。今天写一个pl/sql的归并算法。
归并的算法很容易理解,网上很详细,现只把源码贴出来。
(包声明部分)
CREATE OR REPLACE PACKAGE PG_MERGESORT IS
  -- Author  : wealth_khb@126.com
  -- Created : 2009-10-20 10:09:16
  -- Purpose :
  TYPE EMP_SSN_ARRAY IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; ---声明数组类型
  BEST_EMPLOYEES EMP_SSN_ARRAY; ----数组
  BIG_UPPER    INTEGER;
  MIDDLE_VALUE NUMBER; ---------最大
  -- Public function and procedure declarations
  ------初始化过程
  PROCEDURE PRO_MERGESORT(UPPER_N IN NUMBER);
  FUNCTION FUN_MERGESORT(UPPER_ARRAY IN EMP_SSN_ARRAY) RETURN EMP_SSN_ARRAY;
  FUNCTION FUN_MERGE(LEFT_ARRAY  IN EMP_SSN_ARRAY,
                     RIGHT_ARRAY IN EMP_SSN_ARRAY) RETURN EMP_SSN_ARRAY;
END PG_MERGESORT;
(包体部分)
CREATE OR REPLACE PACKAGE BODY PG_MERGESORT IS
  PROCEDURE PRO_MERGESORT(UPPER_N IN NUMBER) IS
    V_EMP_SSN_ARRAY EMP_SSN_ARRAY;
    V_L             INTEGER;
  BEGIN
    V_L       := 1;
    BIG_UPPER := UPPER_N; ---最大长度
    ------对数组赋值
    FOR X IN 1 .. BIG_UPPER LOOP
      BEST_EMPLOYEES(X) := X * (DBMS_RANDOM.VALUE(X, 1));
    END LOOP;
    ---返回 
     DBMS_OUTPUT.PUT_LINE('排序前'||V_EMP_SSN_ARRAY.COUNT||'个');
    FOR P IN BEST_EMPLOYEES.FIRST .. BEST_EMPLOYEES.LAST LOOP
      DBMS_OUTPUT.PUT_LINE(BEST_EMPLOYEES(P));
    END LOOP;
    V_EMP_SSN_ARRAY := FUN_MERGESORT(BEST_EMPLOYEE


相关文档:

PL/SQL中GOTO语句和标签

在PL/SQL中也提供GOTO语句,其语法是
GOTO label;
这里label是在PL/SQL块中定义的标签.标签是用双箭头括号括起来的.当执行GOTO语句的时候,控制会立即转到由标签标识的语句.
1.对于GOTO的限制
a.对于块,循环或者IF语句而言,想要从外层跳到内层是非法的.
b.使用GOTO子句从一个IF子句跳到另一个子句中也是非法的.
begin
......

sql数据库置疑解决办法

注'svw'为出问题的数据库,此方式对sql7.0以上版本有效,其它低版本为测试
sp_configure  'allow',1 
go
reconfigure  with  override 
go
update  sysdatabases  set  status=32768  where  name='svw' 
go
dbcc  rebuild_log('svw','D:\mssql7\data ......

SQL模糊查询语句(like)

确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可 使用字符串的任意片段匹配通配符。与使用 = 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。如果任何参数都不属于字符串数据类型,Microsoft SQL Server ......

SQL Access Advisor

Oracle 数据库 10g 提供了大量帮助程序(或“顾问程序”),可帮助您决定最佳操作流程。其中一个示例是 SQL Tuning Advisor,它可以提供有关查询调整以及在流程中延长整个优化过程的建议。
但请考虑以下调整案例:假设一个索引确实有助于某个查询,但该查询只执行一次。这样,即使该查询可以得益于此索引,但创 ......

在sql server中关于游标cursor的使用

--此处使用pubs库
declare @myname varchar(50)
declare @fname varchar(20)
declare @lname varchar(20)
declare my_cursor cursor for
select fname,lname from employee order by emp_id
open my_cursor
fetch next from my_cursor into @fname,@lname
while @@fetch_status=0
begin
    set @ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号