首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle之PL/SQL学习笔记(3)
【标  题】:Oracle之PL/SQL学习笔记(3)
【关键字】:Oracle,PL/SQL
【来  源】:http://blog.csdn.net/xttwzx/archive/2007/04/19/1570407.aspx

Oracle之PL/SQL学习笔记(3)

ORACLE数据检索
1,Select 语句:
    SELECT select_list [ into variable_list]
    FROM table_list
    [WHERE where_clause]
    [ORDER BY column_list]
(1)like操作符, _  %
   
(2)正则表达式元字符:
    * :匹配0或多个值
    . :一个有效字符
    ^ :在行的开始处进行模式匹配
    []:字符分组。
    $ : 在行的结尾处结束匹配
    \ :换码符
       () : 字符串分组
        | :分隔某组表达式的各个部分
   
        例:where REGEXP_LIKE(last_name, '^har(d|t)man$', 'i');
            i 表示区分大小写,能匹配的有hardman hartman
(3)ORACLE信息检索(IR)解决方案的核心组件是ORACLE TEXT。
   oracle text 是一个文档/文本索引解决方案,有四种不同类型的索引,Context,CTXCAT,CTXRULE
  为了能够使用Context索引,必须在查询中用contains操作符,语法:
   select [score(label),] column_list
    [ into variable_list]
    From table_list
    where CONTAINS ( column_name, ' search_string'[, label1])>0;
2,游标
    游标指向称为PGA的一个内区域,不是直接指向数据。PGA用于存贮下列数据:查询语句返回的记录行,查询语
句处理和记录行数,指向共享池中已解析查询语句的一个指针。
     如果打开游标后,数据又有变化,其变化不会反映到打开游标的结果中。
   
    四种游标:显式游标,隐式游标,游标变量,游标子查询
    (1)显式游标
       1) 声明(在declearation处):
        CURSOR cursor_name[ parameter_list]
        [RETURN type]
        is query
        [FOR UPDATE [OF (column_list)][NOWAITE];
           
                 RETURN:指定要返回的数据类型
         FOR update的作用是在游标打开后可以锁定记录
         NOWAITE 表示打开游标时不获得独占锁
          2) 打开(代码执行部分或异常处理部分):
        OPEN cursor_name(parameter list);
                游标一次只能有一条活动的记录,打开游标时第一条记录是活动记录
      3) 获取记录
        FETCH coursor_name INTO variable_name(s) | PL/SQL_record;
        例:fetch auth_sur1 into v_first_name,v_2nd_name;
            fetch auth_sur2 into auths;(auths authors%RowType)
           4)关闭游标:一定要显式闭
        close fetch_name;
       5)游标的属性:       
        %FOUND 检查fetch是否取到了记录
        %ISOPEN 检查游标是否处于打开状态
        %NOTFOUNT 是否没找到记录
        %ROWCOUNT 取到记录的行数
       6)使用LOOP 遍历游标
        OPEN auth_cur;
        LOOP
            fetch auth_cur into v_author;
            EXIT when auth_cur%NOTFOUND;
                dbms_output.put_line(v_author.last_name);
        END LOOP;
                CLOSE auth_cur;
                -----------------------------------------
        FOR v_author IN auth_cur   --FOR..LOOP省去了OPEN,FETCH,CLOSE命令
        LOOP
            dbms_output.put_line(v_author.last_name);
        END LOOP;
      (2)隐式游标:
        隐式游标由ORACLE 自动打开和关闭,Oracle每执行一条DML语句在内存中都会有一个游标,
         这个游标同样有显式游标的属性    。只是游标名为SQL,如SQL%ROWCOUNT,SQL%NOTFOUND等。
   
       (3)游标变量
        Set serveroutput on;
        declare
            type book_typ IS REF COURSOR RETURN books%rowtype;
            cv_books book_typ;                           --游标变量
            v_books BOOKS%ROWTYPE;
        begin
            open cv_books FOR select * from books where isbn='121';
                fetch cv_books into v_books;
            close cv_books;
        end;
             (4)返回打开游标的数目的语句:
        SELECT value from v$parameter where name='open_cursor';
        
SQL问题:【上一篇】
精彩SQL:【下一篇】
【相关文章】
  • 今天在Solaris上安装oracle10.2.0.1后遇到错误:TNS-12546和ORA-12514
  • Oracle10g EM Database Console显示信息错误,和真实信息不一致
  • ORACLE:APP-SQLAP-97038 应付发票无法释放暂挂
  • oracle数据库文件中的导入\导出(imp/exp命令)
  • PL/SQL中的 for Update of 应用一例
  • Oracle数据导入导出imp/exp(转贴)
  • ORACLE SQL性能优化系列 (十)
  • ORACLE SQL性能优化系列 (十二)
  • ORACLE SQL性能优化系列 (十三)
  • ORACLE SQL性能优化系列 (十四) 完结篇
  • 【随机文章】
  • VMware4.51 install Solaris10
  • sql server如何访问sybase数据库的表
  • 用js绘图
  • eclipse中弹出包选择对话框的方式
  • 创建伪随机数
  • 16口10/100M(3COM)集线器
  • 谁来关心软件项目中的弱势群体?
  • shawl.qiu?ASP?站内文件搜索类?v1.0
  • 不住用眼瞟着师妹,不由得心头有气,向他怒目瞪了一眼。那武官刚好回过头来,与他目光登时就对上了,心想你...
  • 周末休闲之“百科全书式的学者”
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.