设为首页 收藏本站
查看: 588|回复: 0

[经验分享] PL/SQL(oracle)1_plsql简介

[复制链接]

尚未签到

发表于 2016-7-27 07:37:16 | 显示全部楼层 |阅读模式
  一、PL/SQL目标
二、Pl/SQL简介
   是Oracle公司开发的,专门用于Oracle数据库的一种程序开发语言。
   Pl:代表procedural language,过程性语言。
   SQL:
   增加了循环控制、条件判断等编程语言的特点。
三、块block的介绍
   组成:包含4个部分。
   1、块的声明部分,以declare关键字开头。写所有的变量、常量声明。是可选的部分。
   2、块的主体部分,以begin关键字开头,写块的主要功能。是必须的部分。
   3、异常处理部分,以exception关键字开头,处理主体部分可能出现的异常。是可选的部分。
   4、结束部分,以关键字end开头,标示一个块的结束。是必须的部分。end;
   注意事项:1、所有的声明都写在declare部分。
             2、每行结束都要加上;除了declare,begin,exception这几个关键字之外。
             3、一个语句通常写在一行。
四、块的类型
    1、匿名块:
    2、命名块:
           a\存储过程、函数:被动执行
           b\触发器:自动执行。
五、变量
    1、变量命名规则
    2、命名建议。
    3、变量类型
       标量型:内部没有分量
              a、数值型:number、binary_integer、PLS_integer
              b、字符型:char,varchar2,
              c、日期型:date
              d、布尔型:true,False,Null,
       复合型:内部有分量
              a、记录型变量。
              b、pl/SQL表类型。          
       引用型:
       LOB型: 
       外部变量:声明在块之外的。
            绑定变量:绑定变量需要在块的外部声明,使用variable 变量名 变量类型。在块的内如果要使用绑定变量
            ,需要在变量名之前加上:
            替代变量:不需要声明,直接在块中就可以使用。使用方式在变量名前加上&,该变量需要在程序运行时赋值。             
    4、变量声明语法
       变量名 [Constant] 变量数据类型 [Not Null] [:=表达式] [Default 表达式];
       注意:变量名不区分大小写。
       当使用not null或constant时,必须为其赋初值。
      
       %Type:一种简便声明变量的方式。使用语法:
       变量名 前缀%Type  [Not Null] [:=表达式] [Default 表达式];
       前缀可以是某个表中的某个列,或者是另一个先前声明的变量。该声明方式可以随时和数据库中的某个列保持同步。
    5、变量赋值:
       语法1:变量名 :=   表达式;该语法可以写在declare,begin,exception部分。
       语法2:select 列名|表达式 Into 变量名 From ..........
              *:如果查询结果集是多行或者0行,则该语句抛出异常。
              select后面的列名列表必须和into后面的变量名列表在个数上和数据类型上保持一致。
              多个变量名之间用,分割。该语法必须写在begin部分。
    6、dmbs_output.put_line:输出语句。 
    7、set serveroutput On:打开输出标志。
六、注释
   1、单行注释:--
   2、多行注释: /* 开始,*/结束。
七、过程语句中的函数  
    1、有效的:单行字符、单行数值、单行日期、转换、nvl.
    2、无效的:所有分组函数、decode
八、嵌套块和变量的作用域。
九、PL/SQL块中的SQL语句。   
    只有DML(insert、update、delete、merge)、Select、TCL(commit、rollback、savepoint)
    这三种命令可以直接写在pl/sql块中。
    DDL(Create\Alter\Drop\Rename\truncate)、DCL(Grant\Revoke)不可以直接写。
    块和事务没有必然联系。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249891-1-1.html 上篇帖子: oracle中schema指的是什么? 下篇帖子: oracle over()分析函数的例子
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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