oracle学习(一)

pl/sql块
包括命名快和匿名块以及子程序

子程序  包括  存储过程、函数、包、触发器。。。

存储过程和函数有什么区别吗?

触发器是隐含执行的存储过程!

存储过程是执行特定的操作,而函数是用于返回特定的数据。。。


oracle 变量

1、标量变量:是之智能存放单个数值的变量,最常用的就是标量变量
定义语法:identifier [constant] datatype [NOT NULL] [:= | DEFAULT expr]
说明: expr可以是文本值、其它变量或者函数
2、复合变量:有PL/SQL记录pl/sql记录类似于高级语言中的结构
  eg: 
  declare 
  type emp_record_type is record( 
  name emp.ename%type; 
  ); 
  emp_record  emp_record_type; 
  begin 
  select ename into emp_record from emp; 
  dbms_output.put_line(emp_record.name); 
  end; 

3、参照变量:是指用于存放数值指针的变量,通过使用参照变量,可以使得应用程序共享相同对象,从而降低存储空间
在编写pl/sql时可以使用ref cursor(游标变量)和对象类型变量ref obj_type

游标变量:
eg:
declare 
       type ol is ref cursor; 
       emp_cursor ol; 
       v_ename emp.ENAME%type; 
       v_sal emp.SAL%type; 
begin 
       open emp_cursor for select ename,sal from emp; 
       loop 
            fetch emp_cursor into v_ename,v_sal ; 
            DBMS_OUTPUT.put_line(v_ename||'++++++++'||v_sal); 
            EXIT when emp_cursor%NOTFOUND; 
       end loop; 
       close emp_cursor; 
end; 



猜你喜欢

转载自czpxt2008-163-com.iteye.com/blog/1622532