动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.oracle 透明网关环境的建立.
.FreeBSD-5.2下安装ORACLE9i手记.
.Oracle数据库系统使用经验六则简.
.用RMAN进行Oracle自动备份.
.常用oracle的函数使用说明.
.[bug]record_group 记录组的缺陷.
.用ALTER VIEW来改变视图.
.Oracle与DATA GUARD环境中重建控.
.Oracle开发人员应该具备的几个资.
.Oracle和mysql 的一些简单命令对.
.ORACLE大数据类型的操作之一CLOB.
.[Oracle]利用开源工具实现自己的.
.oracle自动imp脚本.
.高可靠性移动应用程序---J2ME工具.
.实例讲解删除表空间时存在的效率.
.RH8实现多用户多语言登陆.
.提高ORACLE数据库的查询统计速度.
.TestKing Oracle 1Z0-033 Edt19.0.
.利用vmware体验Oracle10g的ASM数.
.关于Oracle数据库中的锁机制深入.

终于以一种奇怪的方式搞定了Oracle的临时表问题

发表日期:2008-2-9 |



  
程序中经常需要在一个主键范围内进行子查询,而这个范围是在前台中动态生成的,所以传过来的只能是一个字符串格式的确定这个主键范围的sql语句.以前的做法是在sp中再根据这个sql语句拼出来返回最终结果的更大的语句.发现这样子的语句往往效率很低,而且数据库的改动(例如列名)也往往无法在包编译时被检查出来.

解决的思路是先把这个主键范围的值查询出来,再用这个查询的结果和其他的表作链接,这样最终的sql就不再是字符串格式了.因为主键范围相对比较小,效率也会提高很多.

于是求助于Oracle的临时表,这看起来是存放主键查询结果的理想的地方. 首先想到的是事务型的,但是发现在前台的.Net程序执行了存储过程之后,默认执行了commit操作,所以返回的结果都是"对象已经不存在".还没有搞懂游标的返回机制,但这看起来有些釜底抽薪的意思.

因此转而投奔会话型的,查询的结果在事务完成后仍会予以保留,只要连接没有断调 -- 这在我们这个C/S架构的程序中是可以满足的. 一个新的问题又出来的,就是如何保证两次执行不会发生影响. 现在的做法是简单的在每次执行前truncate掉临时表,这样,每一次执行时候,存储过程所看到的都是一张空表. 至此,大部分的问题便以这种颇为怪异的方式解决了.

但是问题仍然是有的.就是并发的问题.因为是C/S架构,当前每一个连接是局限在一个客户端内,而在同一个客户端产生这类并发的机会相对较小(不是没有).刚刚想到一个可能的思路是每一次查询完毕后,先去到数据,然后立即关闭连接,这样临时表中的数据就会被自动截断.明天去试一试.

一段小插曲,一个哥们在网上搜oracle临时表相关的材料,发给我一段类似下面的代码:

declare @table1 Table (cust_id int not null)
insert into @table1 select cust_id from customer

总觉得看着眼熟,但是在oracle中怎么编译都不通过.一直到我把目光盯住了那个@ ..... 我终于明白了,这个是SqlServer中的代码,ft啊,半年不用就退化到这个地步了

上一篇:oracle里面如何写case语句 人气:430
下一篇:CSDN Oracle电子杂志创刊号发布 人气:344
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-4 天空网络电影系统SKYUC v2.5.1 B
2008-7-4 PHPDug v2.0 多国语言版
2008-7-4 Drupal v7.x-dev Build 080704
2008-7-4 乐学LBBS无限级目录图片直读系统
2008-7-4 生成静态的美女小偷程序 v1.2
2008-7-4 顶级DJ舞曲网 v1.2 黑色正式版
2008-7-4 生活名片
2008-7-4 轩魂ASP中文验证码
2008-7-4 ip138手机归属地小偷
2008-6-21 PocketTouch简化iPod控制工具 v1
2008-6-21 HidePod万能隐藏 v1.0.9破解版
2008-6-21 TouchPad触摸板破解补丁 v4.42
2008-6-21 iCountDown倒计时工具 v2.0
2008-6-21 tt-Clock语音时钟 v1.0
2008-6-21 PowerManager重启工具
2008-6-21 JasonKit(iLM)离线地图切换软件
2008-6-21 iSlsk P2P下载工具 v0.2.1b
2008-6-21 MCaller来电归属地查询 v0.3破解


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報