PL/SQL 听课笔记

PL/SQL:

 知识回顾:  

 

  SQL:  结构化查询语言;  

  T-SQL:  microsoft sql语言;  

  PL/SQL: Oracle sql语言;    

  变量命名规则:   

    1.首字母必须是字母,可以包含字母,下划线,$,#,数字   

    2.字符长度在30内   

    3.不能为关键字,保留字  

  命名规范:   

    1.见名知意;       见书hibernate   p78;   

    2.普通变量: v_变量名      

    3.游标变量: cursor_变量名;   

    4.参数变量:p_变量名;

   数据类型:   

    标量类型    

       timestamp:时间戳  比date更精确:精确到毫秒   lob类型         

    属性类型    表名.列名%type    

   变量赋值:  

     硬编码:变量名:=值   

    查询赋值:  select 列名         into 变量名     from 表名     where 条件

   begin  end中可以包含:   

    DML:数据操作语言  >>del,insert,update      

    不能写在begin end中:使用动态SQL:excute immediate (SQL);   

     DDL:数据定义语言   >>create,drop,alter,truncate    

    DCL:数据控制语言   >>grant,revoke       

     DQL:数据查询语言   >>select    解决办法:游标; 

   控制语句:   

    if 布尔表达式     

     循环:    loop     [exit 退出循环]    end loop;

       for loop         end loop;

   游标:   

    声明: cursor cursor_表名    is    select * from 表名    --定义变量    表名%rowtype;    

    》打开:begin     open 游标名;     end;   

    》提取:fetch 游标名 into   

    》关闭:close 游标名;

     for循环会隐式声名 记录类型 rowtype的循环变量   游标查询语句必须查询所有列(select *)   自动打开,提取关闭游标

     for v_row in (查询select) loop    v_row.列;   end loop;

    java中调用存储过程:   

     CallableStatement  call=con.prepareCall("{call 存储名([参数1,参数2])}");   

     // 填坑   

     call.set....   

     //注册输出参数类型   

     call.registerOutParameter(2,OracleTypes.CURSOR);   

     //获取输出值  

      call.execute();  

      //获取输出值   

     ResultSet rs=(ResultSet)call.getObject(2);

原文地址:https://www.cnblogs.com/gcs1995/p/4102961.html