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

PL/SQL学习笔记(1)

Your Ad Here (作者: 沈阳大学 王志新)
一、嵌套块:
 
declare
    v_author AUTHOR.FIRST_NAME%TYPE;
begin
   begin
    select first_name
    into v_author
    from authors
    where upper(last_name) = 'HARTMAN';
   exception
    when no_data_found
     then
        dbms_output.put_line('Exception handler for block 1");
        dnms_output.put_line('=============================");
        null;    --表示要在此忽略异常,继续进行
   end;

   begin
    select first_name
    into v_author
    from authors
    where UPPER(last_name) = 'HARDMAN';
   exception
     when too_many_rows
     then
    dnms_output.put_line("Exception hand");
   end;
end;



二、触发器:
   
create or replace  trigger author_trig
    after update of first_name
    on authors
    for each row
    when (OLD.first_name != NEW.first_name)
begin
    dbms_output.put_line('First name '
    || :OLD.first_name || '
    has change to '||:NEW.first_name);
end;   


三、PL/SQL 语言规则:
    1,不区分大小写
    2,最大长度30
    3,查看保保留字符:(必须以SYSDBA or SYSOPER身份运行)
        SET pages 9999
        select keyword
            form v_$reserved_words
            where length = 1
            and keyword != 'A'
            or keyword = '<<';
        4,分隔符:
               :  绑定变量分隔符
           :=  付值分隔符
           @   数据库连接分隔符
           =>  联合操作符,向过程函数参数传值时用
           ||  串联操作符

    5,布尔值:true false null
   

四、PL/SQL 数据类型
    1、字符定义
        v_str varchar(10) //存10个字节
        v_str varchar(10,char);//存10个字符,与一个字符占几个字节无关.
    2、数值类型
        number可以存整数,也可以存浮点数
        v_num number(长度,精度),
            比如对于12.345 保存在number(5,2)中是12.35,
            保存在number(5,-1)中是10   截取前会四舍五入
   
    3,日期/时间类型:
        DATE  可用内置函数to_date 和 to_char 在安符串与日期间进行转换
                TIMESTAMP 与date相似,不同处是TIMESTAMP提供秒民下度量精度,秒以后有9位数字
        TIMESTAMP WITH TIMEZONE, 同TIMESTAMP,但可指定本地时间与格林威治时间的相对关系
        TIMESTAMP WITH LOCAL TIMEZONE 

        INTERVAL YEAR TO MONTH :
            SYSTIMESTAMP + INTERVAL 10-3 YEAR TO MONTH 当前时间加10年3个月
        INTERVAL DAY TO SECOND :
            SYSTIMESTAMP + INTERVAL 19 9:0:0.0 DAY TO SECOND 19天9小时之后的时间。


    4、引用类型,(类似指针)
        有两种:SYS_REFCURSOR 和REF
        create or replace procedure athors_sel(
            cv_results in out sys_refcursor)
        is
        begin
            open cv_results for select id,first_name,last_name from authors;
        end;
五、变量
    定义:variable_name[CONSTANT] type [NOT NULL][:=VALUE] //加constant表示为常量
    %TYPE: v_name authors.last_name%TYPE 表示与authors.last_name类型同
    %ROWTYPE: v_author authors%ROWTYPE 该变量可存贮表中一行记录。   

六、oracle查询过程
    执行三个阶段:解析PARSE, 执行EXECUFE,取值FETCH
    PARSE阶段,查询语句会被分解为散列值,再将查询语句句法和它的散列值一起与最近运行的那些查询进行

比较,以确定该查询语句是否与其中的某个查询相匹配。如果匹配,ORACLE就会越过产生执行计划的这一步处理过

程,如果没有匹配的,ORACLE就会选用它认为执行代价最低的那个执行计划来访问所需要的数据。
    可是alter session set sql_trece = true 来显示语句执行细节

七、代码隐藏功能
    wrapper命令可以将代码变为地十六进制。
    wrap iname=input_file.sql oname=output_file.plb    (wrap位于ORACLE/bin目录下)
        运行转换后的文件可先运行原始脚本 SQL>@wrapseedsql 再运行找包文件 SQL>@Warpafter.sql
TOAD使用笔记:【上一篇】
Oracle 升级服务:【下一篇】
【相关文章】
  • 新PL/SQL程序包问题探讨
  • 在PL/SQL Developer复制一条记录,快速提交这条记录,而不用使用insert into.
  • 使用Oracle的PL/SQL发送Email
  • oracle PL/SQL 入门
  • Oracle PL/SQL设计的真是奇怪
  • PL/SQL FORALL
  • PL/SQL BULK COLLECT INTO
  • 用pl/sql来发邮件
  • Oracle PL/SQL语言基础之一
  • Oracle PL/SQL语言基础之二
  • 【随机文章】
  • Linux下C开发环境的构成和安装 [转]
  • 如何在RPG IV中嵌入SQL语句?
  • PowerDesigner中的对象与关系映射建模
  • 无线局域网产品使用的SMS4密码算法及其实现
  • bjam,别弄乱了链接顺序!
  • 利用ThreadLocal记录日志
  • oracle停写日志的写法
  • 运用ajax技术的树型菜单(转)
  • MS SQL Server 事务日志介绍
  • 什么是单反相机
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.