若相依 发表于 2015-1-16 22:17:13

MYSQL教程之带排序的oracle分页存储历程

即使对于MySQL的商业化的企业版来说,也没有高昂的许可证成本,当你将其与像甲骨文和微软之类的大型专有商业数据库比较的话。  输出orderby的sqeuence是,应当为“desc”大概“asc”
  若输出两个orderby则,v_order_field="a,orderbyb"
CREATEORREPLACEPROCEDURETABLEPAGE_SELECT(v_page_size  int,--thesizeofapageoflist
                      v_current_pageint,--thecurrentpageoflist
                      v_table_namevarchar2,--thetalbename
                      v_order_field varchar2,--theorderfield
                      v_order_sequencevarchar2,--theordersequenceshouldby"_desc"or"_asc",_isblank.
                      --v_sql_select varchar2,--theselectsqlforprocedure
                      --v_sql_count  varchar2,--thecountsqlforprocedure
                      --v_out_recordcountOUTint,--thenumofreturnrows
                      p_cursorOUTrefcursor_pkg.return_cursor)as
 v_sql    varchar2(3000);--thesqlforselectallrowsoflist
 v_sql_count varchar2(3000);--thecountsqlforprocedure
 v_sql_order varchar2(2000);--theorderoflist
 v_count   int;--theamountrowsfooriginallist
 v_endrownum int;--theendrownumofthecurrentpage
 v_startrownumint;--thestartrownumofthecurrentpage
BEGIN
 ----settheorderoflist
 if v_order_field!=NOthen
  v_sql_order:=ORDERBY||v_order_field||||v_order_sequence;
 else
  v_sql_order:=;
 endif;
 ----catchtheamountrowsoflist
 v_sql_count:=SELECTCOUNT(ROWNUM)FROM||v_table_name;
 executeimmediatev_sql_countintov_count;
 --v_out_recordcount:=v_count;
 ----setthevalueofstartandendrow
 ifv_order_sequence=descthen
  v_endrownum:=v_count-(v_current_page-1)*v_page_size;
  v_startrownum:=v_endrownum-v_page_size+1;
 else
  v_endrownum:=v_current_page*v_page_size;
  v_startrownum:=v_endrownum-v_page_size+1;
 endif;
 ----thesqlforpageslide
 v_sql:=SELECT*FROM(SELECT||v_table_name||.*,rownumrnFROM||v_table_name||WHERErownum<=||
     to_char(v_endrownum)||||v_sql_order||) WHERErn>=||
     to_char(v_startrownum)||||v_sql_order;
 openp_cursorforv_sql;
ENDTABLEPAGE_SELECT;一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如MySQL学习教程,WindowsAzureSQLDatabase(以前的SQLAzure)是微软的DBaaS产品,提供了一个类似于SQLServer的数据库平台。

第二个灵魂 发表于 2015-1-19 06:47:33

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

深爱那片海 发表于 2015-1-27 08:21:08

发几份SQL课件,以飨阅者

透明 发表于 2015-2-5 06:48:40

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

小女巫 发表于 2015-2-11 08:00:05

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

飘灵儿 发表于 2015-3-2 01:05:01

习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。

谁可相欹 发表于 2015-3-11 01:33:46

Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。

飘飘悠悠 发表于 2015-3-17 18:10:43

大家注意一点。如下面的例子:

兰色精灵 发表于 2015-3-17 18:10:48

所以你总能得到相应的升级版本,来满足你的需求。

乐观 发表于 2015-3-24 18:51:13

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!
页: [1]
查看完整版本: MYSQL教程之带排序的oracle分页存储历程