pro第二天

写一个存储过程  传入两个整数参数   把它们的和放入
第二参数中 
create  or replace  procedure  getsum(x in number,
y in out number) 
is
begin
    y:=x+y;
end;


写一个函数     传入两个整数参数    返回他们最小值
create  or  replace  function  getmin(x in number,
y in number) return  number 
is
begin
    if x<y then 
        return x;
    end if;
        return y;             
end;
 
存储过程调用?
在proc代码中  写如下代码
exec sql  execute
    begin
        /*调用plsql*/
    end;
end-exec;  






 userid=openlab/open123
 程序在预编译的时候 就需要连接oracle  去检查存储过程
或者函数存在不存在


  
 数据库的连接:
     本地连接: 
     exec sql connect:用户名/密码;
     exec sql connect :用户名   identified by 密码;
     连接的oracle实例名 
     echo $ORACLE_SID 
     远程连接:   
     1.使用数据库链接访问远程数据库
       database  link
              

       $ORACLE_HOME/network/admin/tnsnames.ora 


proc  异常 
   try{


   }catch(){


   } 
   exec sql whenever  条件  动作;


   条件:sqlwarning    sqlerror   not found 
   动作:do 函数    continue    break  stop  goto


    
   把id为-1的员工的first_name 放入一个宿主变量
   中,如果查询到了数据就输出这个员工的first_name
   如果没有发现数据 则进行错误处理(打印一下原因)
   
   
   错误处理要对应的向上就近  




   转账
   exec sql update  account  set salary=salary-500000  where  id=1;(成功)
   exec sql update  account  set salary=salary+500000 where  id=5;(失败)




  动态sql:一个sql语句是一个字符串  


  动态sql1:
      1.非select 
      2.不能包含宿主变量(不能有占位符)
      
      不适合批量处理     效率不高
      一般只适合  执行次数较少的sql 


  动态sql2:
      可以包含宿主变量(可以有占位符号)
       "insert  into  test values(:b0,:b1)"; 
      适合批量处理  效率高


  动态sql3:
      解决select 语句是字符串  
      可以有占位符号 
      动态sql2 + 游标




 proc的知识点:
     1.什么是pro程序
     2.为什么要使用proc 和proc++
     3.什么是宿主语言  什么是宿主变量
       宿主变量的类型
       变长字符串的处理方式  
       宿主变量的使用的注意事项
     4.proc的预编译选项有哪些  
       哪些和c++相关
       哪些和plsql有关
     5.如何写一个proc程序
       步骤
       a  编写pc代码 
       b  预编译
       c  链接  执行
      
     6.指示变量  
       用法 
     7.数组变量   
       指示变量数组 
     8.proc中如何嵌入sql  
       select
       dml  ddl  事务控制
       如何调用plsql  


     9.数据库连接接
           本地连接
  
           远程连接  
           a  database  link 
           b  using    at


     10.数据的存取 与更新
        结构体
        游标 
            非滚动游标
            滚动游标
              
     11.异常
        exec sql whenever 条件    动作;


     12.动态sql 
        a
        b
        c
 




                                 
                
      












    










    
















  
    
       
















    


  








   
     


































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值