set serveroutput on //显示信息 show error; //sql*plus显示错误信息 //只有定义部分的块 begin dbms_output.put_line('hello word'); end; //有定义部分还有执行部分 declare name varchar2(20); --定义部分 begin --执行部分 select name into name from user where id=10; dbms_output.put_line(name); end; //有定义部分、执行部分,还有异常部分块结构 declare name varchar2(20); --定义部分 begin --执行部分 select name into name from user where id=$id; dbms_output.put_line(name); excepion --异常部分 when NO_DATA_FOUND then dbms_output.put_line('出错了!'); when others then dbms_output.put_line('不知道的异常!'); end; //没有参数的proc create or replace procedure sp_testname() --定义部分 begin --执行部分 select * from category ; end; //有带进参数的proc,in可写可不写,我发现mysql中in可以写在前面,但oracle中的in,out必须写中间 create or replace procedure sp_testname( id in number) --定义部分 begin --执行部分 select * from category where category_id=id; end; //有带进参数的proc,又有带出参数,mysql中好像varchar类型 都要带长度, create or replace procedure sp_testname(id number,categoryname out varchar2) --定义部分 begin --执行部分 select categoryname into categoryname from category where category_id=id; end; //函数 create or replace function calc(num1 number,num2 number) return number is result nunber(10,0); begin select num1+num2 into result from dual; return result; end; //包 create or replace package sp_packages is procedure insert_user(username varchar2,passwd varchar2); function calc(num1 number,num2 number) return number; //包体 create or replace package body sp_packages is procedure insert_user(username varchar2,passwd varchar2) is --定义部分 begin --执行部分 insert into user values(username,passwd); end; function calc(num1 number,num2 number) return number is result nunber(10,0) begin --执行部分 select num1+num2 into result from dual; return result; end;
oracle 块结构、存储过程、函数、包、包体
猜你喜欢
转载自javaeedevelop.iteye.com/blog/1549525
今日推荐
周排行