仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 825|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL编程:pl/sql程序编写中碰到的一些成绩及办理...

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
EXAMPLE存储引擎是一个不做任何事情的存根引擎。它的目的是作为MySQL源代码中的一个例子,用来演示如何开始编写一个新存储引擎。同样,它的主要兴趣是对开发者。EXAMPLE存储引擎不支持编索引。程序|办理|成绩
1、在pl/sql中,orderby子句中的前提可使用变量!

DECLARE
v_orderbystrVARCHAR2(30);
v_useridVARCHAR2(30);
v_usernameVARCHAR2(30);
v_genderNUMBER;
v_rownumNUMBER;
TYPEtcurISREFCURSOR;
resultstcur;
BEGIN
v_rownum:=0;
v_orderbystr:=username;
OPENresultsFORselectuserId,userName,genderfrom
(selectROWNUMASrowno,a.*from
(select*fromhome_userorderbyv_orderbystr)a
whererownum<10)
whererowno>=1;
LOOP
FETCHresultsINTOv_userid,v_username,v_gender;
EXITWHENresults%NOTFOUND;
dbms_output.put_line(v_userid||||v_username||||v_gender);
v_rownum:=v_rownum+1;
ENDLOOP;
CLOSEresults;
dbms_output.put_line(v_rownum);
END;

2、而在写静态sql的存储过程当中,发明在利用using子句时,发明不克不及把表名作为占位符的参数!而只能经由过程下边的举措来替换,即间接将表名与字符串相连,其他的变量则能够被占位符来替换;
v_sqlStr:=SELECT*FROM(SELECTrownumrowno,t.*FROM
||(SELECTsequenceidmsgId,themeid,Id,topic,hits,replys,nickname
||FROM||tablename||WHEREthemeid=:a2ORDERBY:a3)tWHERErownum<:a4
||)WHERErowno>=:a5;
dbms_output.put_line(v_sqlStr);
OPENo_resultsFORv_sqlStrUSINGp_themeId,v_OrderByStr,v_endRow,v_startRow;

3、在做一些翻页查询时,利用了伪列rownum,发明rownum只能用于rownum<10之类的使用,而不克不及是rownum>10;上例中完成了同时翻页的功效;

4、使用已存在的表创建一个新表,并复制源表的表布局:
CREATETABLEnewTableas(select*oldTablewhere1=2)

对于insert操作,只需要把event_type改成DELETE_ROWS_EVENT;对于delete操作,改成WRITE_ROWS_EVENT
不帅 该用户已被删除
沙发
发表于 2015-1-19 18:59:35 | 只看该作者
代替了原来VB式的错误判断。比Oracle高级不少。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-28 09:38:23 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
若相依 该用户已被删除
地板
发表于 2015-2-5 17:17:27 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
若天明 该用户已被删除
5#
发表于 2015-2-13 01:09:26 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-3 12:08:59 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
小妖女 该用户已被删除
7#
发表于 2015-3-11 10:55:55 | 只看该作者
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
变相怪杰 该用户已被删除
8#
发表于 2015-3-18 07:34:03 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
admin 该用户已被删除
9#
发表于 2015-3-25 13:21:12 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 03:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表