精华内容
下载资源
问答
  • 2、当执行事务操作(DML)时,Oracle会在被作用的表上加锁,以防止其他用户改变表结构,同时也会在被作用的行上行锁,以防止其他事务在相应行上执行DML操作。3、当执行事务提交或事务回滚时,Oracle会确认事务变化或...

    1、事务用于确保数据的一致性,由一组相关的DML语句组成,该组DML语句所执行的操作要么全部确认,要么全部取消。
    2、当执行事务操作(DML)时,Oracle会在被作用的表上加锁,以防止其他用户改变表结构,同时也会在被作用的行上加行锁,以防止其他事务在相应行上执行DML操作。
    3、当执行事务提交或事务回滚时,Oracle会确认事务变化或回滚事务、结束事务、删除保存点、释放锁。
    4、提交事务(COMMIT)确认事务变化,结束当前事务、删除保存点,释放锁,使得当前事务中所有未决的数据永久改变。
    5、保存点(SAVEPOINT)在当前事务中,标记事务的保存点。
    6、回滚事务(ROLLBACK)回滚整个事务,删除该事务所定义的所有保存点,释放锁,丢弃所有未决的数据改变。
    7、回滚事务到指定的保存点(ROLLBACK TO SAVEPOINT)回滚当前事务到指定的保存点,丢弃该保存点创建后的任何改变,释放锁。
    8、当执行DDL、DCL语句,或退出SQL*PLUS时,会自动提交事务;
    9、事务期间应避免与使用者互动;
    10、查询数据期间,尽量不要启动事务;
    11、尽可能让事务持续地越短越好;
    12、在事务中尽可能存取最少的数据量
            

    案例:

    复制代码
    createorreplaceprocedure stu_proc
    (
    v_id
    innumber,
    v_name
    invarchar2,
    v_age
    innumber,
    v_msg out
    varchar2
    )
    as
    begin
    insertinto student(id, sname, age) values (v_id, v_name, v_age);
    commit;
    v_msg:
    ='添加成功';
    exception
    when others then
    rollback;
    v_msg:
    ='失败成功';
    RAISE_APPLICATION_ERROR(
    -20010, 'ERROR:违反唯一索引约束!');
    end;
    create or replace procedure delete_exceed_bound(playtype  varchar2, end07  varchar2 , end08  varchar2)
      
    is

      
    begin
        
    delete lotterydate where lotterydate.playtype=playtype and  lotterydate.lotterydate_name>end07 and lotterydate.lotterydate_name like '07%';
        
    delete lotterydate where lotterydate.playtype=playtype and  lotterydate.lotterydate_name>end08 and lotterydate.lotterydate_name like '08%';
        savepoint p1;
        
    delete province_sell_amounts where province_sell_amounts.play_no=playtype and province_sell_amounts.term>end07 and province_sell_amounts.term like '07%';
        
    delete province_sell_amounts where province_sell_amounts.play_no=playtype and province_sell_amounts.term>end08 and province_sell_amounts.term like '08%';

        
    delete province_winning_prize where province_winning_prize.play_no=playtype and province_winning_prize.term>end07 and province_winning_prize.term like '07%';
        
    delete province_winning_prize where province_winning_prize.play_no=playtype and province_winning_prize.term>end08 and province_winning_prize.term like '08%';
        savepoint p2;
        
    delete condition_winning_prize where condition_winning_prize.play_no=playtype and condition_winning_prize.term>end07 and condition_winning_prize.term like '07%';
        
    delete condition_winning_prize where condition_winning_prize.play_no=playtype and condition_winning_prize.term>end08 and condition_winning_prize.term like '08%';
        savepoint p3;
        
    delete open_result where open_result.play_no=playtype and open_result.term>end07 and open_result.term like '07%';
        
    delete open_result where open_result.play_no=playtype and open_result.term>end08 and open_result.term like '08%';


      exception
          
    when others then
            dbms_output.put_line(sqlerrm);
            
    rollback to savepoint p1;
      
    end delete_exceed_bound;
    保存点(SAVEPOINT)是事务处理过程中的一个标志,与回滚命令(ROLLBACK)结合使用,主要的用途是允许用户将某一段处理回滚而不必回滚整个事务。

     

    如果定义了多个savepoint,当指定回滚到某个savepoint时,那么回滚操作将回滚这个savepoint后面的所有操作(即使后面可能标记了Nsavepoint)。

    在一段处理中定义了3个savepoint,从第2个savepoint回滚,后面的第3个标记的操作都将被回滚,如果不使用ROLLBACK TO savepoint_name而使用ROLLBACK,将会滚整个事务处理。

    展开全文
  • 由HttpUrlConnection获取流来进行流的读写,实现文件的存储; 在下载过程中利用Handler来向外传递下载的信息。 2.断点续传: 对于每一个线程利用一个DownloadInfo类来保存下载的信息,每次在下载过程中向数据库...
  • 存储过程❗️ 函数❗️ 流程控制结构❗️ 事物:绑定多条sql语句,要么都成功,要么都失败 (一)隐示事物 例如:insert、update、delete (二)显示事物:和后端语言配合使用 防止隐示事物先提交了,需要先添加...

    事物
    视图
    变量❗️
    存储过程❗️
    函数❗️
    流程控制结构❗️

    事物:绑定多条sql语句,要么都成功,要么都失败

    (一)隐示事物
    例如:insert、update、delete
    (二)显示事物:和后端语言配合使用

    1. 防止隐示事物先提交了,需要先添加取消事物的步骤
    2. 提交和回滚只能执行一个,如果是回滚的话, 相当于没执行
    3. 和后端语言配合使用
    //步骤1:取消事物
    set autocommit = 0
    
    //步骤2:开启事物
    start  transaction
    
    //步骤3:编写sql命令,加断点
    select * from;
    savepoint     自定义断点名
    rollback to   自定义断点名
    select * from;
    
    //步骤4:提交
    commit;
    
    //步骤4:回滚
    rollback;
    

    (三)隔离级别:解决数据库并发操作时的脏读等相关问题(图:xmind)

    //数据库并发问题:脏读,不可重复读,幻读 
    //查看当前隔离级别
    select @@tx_isolation
    

    视图:临时表,相当于把sql命令保存起来,后期重复用

    1. 只用于查看,此处视图相似与函数,但执行函数在[存储过程]中体现
    2. 存储在可视化图形中的视图中
    3. 只保存sql逻辑, 并不对实际的数据库进行操作,不会保存查询结果
    4. 一般情况下 对视图内的数据进行增删改查,不影响原始表
    5. 特别简单的sql命令可以影响原始表(例如不能有关键字:分组,union等)
    //1.使用视图
    select 字段 from 视图名 where 查询条件
    
    //2.创建视图
    create view  视图名
    as 完整的查询语句
    
    //3.删除视图
    drop view 视图名1,视图名2
    
    //4.修改视图方式1
    create or replace view 视图名
    as 完整的查询语句
    
    //4.修改视图方式2
    alter view 视图名
    as 完整的查询语句
    
    //5.查看视图
    desc 视图名
    show create view 视图名  //不常用,比较全
    

    变量❗️

    存储过程 ❗️

    函数❗️

    流程控制结构❗️

    展开全文
  • [color=red][b][size=medium]主要是设置断点 ,然后按F10进入调试界面,按F11进行单步调试! SQL Server 2008 Express 智能提示加强:使用快捷键ctrl + J 即可。[/size][/b][/color] [code="sql"]...
    [color=red][b][size=medium]主要是设置断点 ,然后按F10进入调试界面,按F11进行单步调试!

    SQL Server 2008 Express 智能提示加强:使用快捷键ctrl + J 即可。[/size][/b][/color]


     Select @tempTime=DATEADD(day,1,@tempTime)


    今天主要遇到了一个SQL 存储过程方面的问题,即跨年统计数据,按照当前设计的存储过程,只能实现一年当中的数据的查询!跨年就会重复出现!
    展开全文
  • 1.多线程分片上传原理 2.断点上传和下载的原理 3.取消上传的原理 4.文件上传下载加密 ...在本地下载过程中要使用数据库实时存储到底存储到文件的哪个位置了,这样点击开始继续传递时,才能通过HT...

    1.多线程分片上传原理

    2.断点上传和下载的原理

    3.取消上传的原理

    4.文件上传下载加密

    5.文件合法性和完整性验证

     

     

    文件下载的流程:

    1.得到文件的大小,名字,md5

    2.分块,验证每一块的md5

    3.断线下载数据库记录

    4.合法验证

     

    1. 断点续传原理

    在本地下载过程中要使用数据库实时存储到底存储到文件的哪个位置了,这样点击开始继续传递时,才能通过HTTP的GET请求中的setRequestProperty()方法可以告诉服务器,数据从哪里开始,到哪里结束。同时在本地的文件写入时,RandomAccessFile的seek()方法也支持在文件中的任意位置进行写入操作。同时通过广播将子线程的进度告诉Activity的ProcessBar。

    --------------------- 

    使用多线程的好处:使用多线程下载会提升文件下载的速度。那么多线程下载文件的过程是: 

      (1)首先获得下载文件的长度,然后设置本地文件的长度。

          HttpURLConnection.getContentLength();//获取下载文件的长度

         RandomAccessFile file = new RandomAccessFile("QQWubiSetup.exe","rwd");

           file.setLength(filesize);//设置本地文件的长度

     

      (2)根据文件长度和线程数计算每条线程下载的数据长度和下载位置。

          如:文件的长度为6M,线程数为3,那么,每条线程下载的数据长度为2M,每条线程开始下载的位置如下图所示。

      

       例如10M大小,使用3个线程来下载,

            线程下载的数据长度   (10%3 == 0 ? 10/3:10/3+1) ,第1,2个线程下载长度是4M,第三个线程下载长度为2M

             下载开始位置:线程id*每条线程下载的数据长度 = ?

            下载结束位置:(线程id+1)*每条线程下载的数据长度-1=?

     

      (3)使用Http的Range头字段指定每条线程从文件的什么位置开始下载,下载到什么位置为止,

             如:指定从文件的2M位置开始下载,下载到位置(4M-1byte)为止

               代码如下:HttpURLConnection.setRequestProperty("Range", "bytes=2097152-4194303");

     

      (4)保存文件,使用RandomAccessFile类指定每条线程从本地文件的什么位置开始写入数据。

    RandomAccessFile threadfile = new RandomAccessFile("QQWubiSetup.exe ","rwd");

    threadfile.seek(2097152);//从文件的什么位置开始写入数据

     

     

    多线程结合断点续传下载

    多线程无非是将待下载的文件分成若干个部分进行下载并实现断点续传。

    1.同样,我们首先要获取待下载的文件的长度,用来为每个线程分配下载长度。通过HttpURLConnection.getContentLength()获取待下载的文件的长度。如下:
    filesize=connection.getContentLength();

    2.通过前面获取的下载文件的长度,为每个线程计算下载长度,即为每个线程设置下载的起始位置跟结束位置。通过HttpUrlConnection.setRequestProperty("Range", "bytes=" + 开始位置+ "-" + "结束位置")方法。如下图所示:
    [图片上传失败...(image-f5634c-1521193484969)]

    计算方法如下:
    int block = (filesize % threadCount == 0) ? filesize / threadCount : filesize / threadCount + 1;
    所以每个线程对应的起始位置跟结束位置分别为:**i block, (i + 1) block(i从0开始)

    3.通过RandomAccessFile可以在文件指定位置写入数据。如下:
    mRandomAccessFile.seek(startPos)

    4.为每个线程的下载的进度都保存数据,这样每次每次暂停后重新下载都重新读取下载进度,并且可以从上次位置重新下载。并且再本地文件中继续读入数据。

     

    在MyThread中,通过info.getStart() + info.getNow()设置开始下载的位置,如果是第一次下载两个数将都是0,如果是暂停后再下载,则info.getNow()会取出非0值,该值来自数据库存储。使用setRequestProperty告知服务器从哪里开始传递数据,传递到哪里结束,本地使用RandomAccessFile的seek()方法进行数据的本地存储。使用广播将进度的百分比传递给Activity,Activity再改变ProcessBar进行UI调整。

     

    这里很关键的一点是在用户点击暂停后会在Service中调用downLoadUtil.isPause = true,因此上面while循环会结束,停止下载并通过数据库的update()保存进度值。从而在续传时取出该值,重新对服务器发起文件起始点的下载任务请求,同时也在本地文件的相应位置继续写入操作。本文原创,转载请注明出处为SEU_Calvin的博客。

     

    最后补充一点,(17/4/11被面试问到了)关于断线续传的HTTP状态码并不是200,而是206,即HttpStatus.SC_PARTIAL_CONTENT。

    --------------------- 

    代码如下:

    @Override

    @Override

    public void run() {

        HttpURLConnection conn = null;

        RandomAccessFile raf = null;

        try {

            //连接网络文件

            URL url = new URL(mFileInfo.getUrl());

            conn = (HttpURLConnection) url.openConnection();

            conn.setConnectTimeout(3000);

            conn.setRequestMethod("GET");

            int length = -1;

            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

                //获得文件长度

                length = conn.getContentLength();

            }

            if (length <= 0) {

                return;

            }

            //在本地创建文件

            File dir = new File(DOWNLOAD_PATH);//验证下载地址

            if (!dir.exists()) {

                dir.mkdir();

            }

            File file = new File(dir, mFileInfo.getFileName());

            raf = new RandomAccessFile(file, "rwd");//r:读权限,w:写权限,d:删除权限

            //设置文件长度

            raf.setLength(length);

            mFileInfo.setLength(length);

            mHandler.obtainMessage(MSG_INIT, mFileInfo).sendToTarget();

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            conn.disconnect();

            try {

                raf.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

     

     

    问题:

    1.断点上传需要客户端支持吗?

    2.知道下载链接,就可以下载,安全问题!

     

    切片上传

    https://blog.csdn.net/u011368551/article/details/81531880

     

    demo地址:

    https://blog.csdn.net/seu_calvin/article/details/53749776

    展开全文
  • 断点待调试-hadoop预备

    2012-08-25 18:37:29
    基于最近一系列想法,准备基于hadoop的搜索和存储进行部分研究,这里mark一下,为自己个油~ 已经不是少年了,但是还是想说:努力吧少年!!!为了美好的未来!!! 这里我也会把部分从浅入深的hadoop学习过程...
  • 数据结构作业要构造huffman树并输出文件,但是过程遇到问题,困了好几天没能解决。 ![图片说明](https://img-ask.csdn.net/upload/201910/15/1571149416_706766.png)![图片说明]...
  • 1.1.1 字节存储顺序 1.1.2 ASCII与Unicode字符集 1.2 WINDOWS 操作系统 1.2.1 Win API简介 1.2.2 常用Win32 API函数 1.2.3 什么是句柄 1.2.4 Windows 9x与Unicode 1.2.5 Windows NT/2000/XP与Unicode 1.2.6 Windows ...
  • vs .net 的十个特性

    2005-11-16 21:31:00
    进程, 9 调试存贮过程 前提安装了sqlserver debugging components 打开server浏览器, 选择网络中的的数据库服务器,选择要调试的存储过程,加断点 8 引用项目 一个解决方案中可能存在多个项目, 你可以直接...
  • 数据协同是什么

    千次阅读 2019-11-08 08:25:09
    数据协同就是数据共享多方计算生成数据协同网络,解决用户问题。而这个网络最重要的几点就是可信存储、安全计算。...2、保证数据在存储过程中高可用、可扩展,及可通过数据备份的方式,减少数据灾难,断点不可续、...
  • Toad 使用快速入门

    2008-11-27 15:22:14
    可以自定义存储过程得模板,在新建存储过程的时候,自动生成程序的框架可以方便的调用Schema Browser,把鼠标定位于某个对象上,F4,Schema Browser打开该对象的详细描述,帮助顺利快速开发程序。支持代码自动更正,...
  • 本地文件存储(游戏存档,要加密) 源代码,要进行一些混淆 图片加载的比较慢如何处理,怎样优化程序性能 图片下载放在异步线程 图片下载过程中用占位图片 如果图片特别大,考虑多线程断点下载 设计一个框架API时,...
  • 搜狐企业网盘采用AES-256网银级标准加密存储,HTTP SSL协议保证数据与密码在传输过程中不被窃听和截取,从存储到传输的全程加密,以及完善的数据备份和容灾机制,7*24小时守护您的数据! 功能:访问控制、冗余存储...
  • 修改,并与服务器端配合,可以实现断点续传等诸多功能。 本例主要是研究FireFox的file-input节点的一些特性,其他客户端应用,如Flash、Sliverlight等,在实现客户端大文件上传时,在数据传输与服务器端存储等...
  • 二叉排序树(BST)的思路及C语言实现

    千次阅读 2016-05-31 11:26:21
    请注意,为了能够更好的理解二叉排序树,我建议各位在看代码时能够设置好断点一步一步跟踪函数的运行过程以及各个变量的变化情况一.动态查找所面临的问题在进行动态查找操作时,如果我们是在一个无序的线性表中进行...
  • C# 常用类代码(封装)

    热门讨论 2010-11-10 10:11:22
    3.DBOperation.cs 提供数据库的操作,如创建连接串执行存储过程等 4.ExcelOperations.cs Excel操作类 5.ftp.cs ftp有关操作,支持断点续传 6.常用编码操作:文件编码等 7.js.cs 常用js代码 8.文件操作类 9.数据检查...
  • 6)所采数据可自动保存为文本文件、excel文件,也可自动存储到数据库,数据库支持Access、MSSqlServer、MySql,同时在数据存储过程中还可自动去重重复行,避免数据重复; 7)所采数据也可自动发布到网站,通过...
  • 实例277 通过存储过程关闭SQL数据库连接进程 11.3 触发器的应用 实例278 Insert触发器的应用 实例279 Update触发器在系统日志中的应用 实例280 触发器的嵌套使用 实例281 获取数据库中的触发器 第12章 ASP.NET内置...
  • 实例277 通过存储过程关闭SQL数据库连接进程 11.3 触发器的应用 实例278 Insert触发器的应用 实例279 Update触发器在系统日志中的应用 实例280 触发器的嵌套使用 实例281 获取数据库中的触发器 第12章 ASP.NET内置...
  • 实例277 通过存储过程关闭SQL数据库连接进程 11.3 触发器的应用 实例278 Insert触发器的应用 实例279 Update触发器在系统日志中的应用 实例280 触发器的嵌套使用 实例281 获取数据库中的触发器 第12章 ASP.NET内置...
  • 6.2.2 存储过程的基本操作 6.2.3 透视表的基本概念 6.2.4 统计表的基本操作 6.2.5 单击显示右键菜单 6.3 设计过程 6.3.1 主窗体的初始化 6.3.2 透视表的筛选 6.3.3 透视表的设计 6.3.4 统计表的设计 第7章 自定义...
  •  集成调试器(要求Oracle 7.3.4或更高)——该调试器提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何...
  •  集成调试器(要求Oracle 7.3.4或更高)——该调试器提供您所需要的全部特性:跳入(Step In)、跳过(Step Over)、跳出(Step Out)、异常时停止运行、断点、观察和设置变量、观察全部堆栈等。基本能够调试任何...
  • 实例147 SqlParameter参数方式操作数据库(存储过程) 5.5 以备后患:数据库的备份与恢复 实例148 数据库的备份操作 实例149 数据库的还原操作 实例150 数据库的分离操作 实例151 数据库的附加操作 实例152 ...
  • 实例147 SqlParameter参数方式操作数据库(存储过程) 5.5 以备后患:数据库的备份与恢复 实例148 数据库的备份操作 实例149 数据库的还原操作 实例150 数据库的分离操作 实例151 数据库的附加操作 实例152 ...
  • 6.2.2 存储过程的基本操作 6.2.3 透视表的基本概念 6.2.4 统计表的基本操作 6.2.5 单击显示右键菜单 6.3 设计过程 6.3.1 主窗体的初始化 6.3.2 透视表的筛选 6.3.3 透视表的设计 6.3.4 统计表的设计 第7章 自定义...
  • 6.2.2 存储过程的基本操作 6.2.3 透视表的基本概念 6.2.4 统计表的基本操作 6.2.5 单击显示右键菜单 6.3 设计过程 6.3.1 主窗体的初始化 6.3.2 透视表的筛选 6.3.3 透视表的设计 6.3.4 统计表的设计 第7章 自定义...
  • C#开发典型模块大全

    2014-03-12 18:11:22
    6.2.2 存储过程的基本操作 115 6.2.3 透视表的基本概念 117 6.2.4 统计表的基本操作 117 6.2.5 单击显示右键菜单 118 6.3 设计过程 118 6.3.1 主窗体的初始化 119 6.3.2 透视表的筛选 127 6.3.3 透视...
  • FTP serverU服务器8.0.0.7绿色版

    千次下载 热门讨论 2009-05-31 12:37:01
    支持文件上传和下载过程中的断点续传。 支持拥有多个IP 地址的多宿主站点。 能够设置上传和下载的比率,硬盘空间配额,网络使用带宽等,从而能够保证用户有限的资源不被大量的FTP 访问用户所消耗。 可作为系统服务...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 159
精华内容 63
关键字:

存储过程加断点