oracle 存储过程 建表插值等

前端之家收集整理的这篇文章主要介绍了oracle 存储过程 建表插值等前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

建表、插值的procedure

create or replace procedure CREATE_EMP is
v_createsql varchar2(2000);
v_insertsql varchar2(2000);
begin
  v_createsql := create table EMP (
                  employerid number(8) primary key not null,employername varchar2(20) not null);
                 
  v_insertsql := insert into EMP select 10000000,||chr(39)||Philippe||chr(39)|| from dual;
  execute immediate v_createsql;
  execute immediate v_insertsql;
end;

注意,这里字符串中的单引号可以用chr(39)表示,另外oracle字符串拼接用||

一个简单的procedure:

create or replace procedure EMP_COUNT
AS
V_TOTAL NUMBER(10);
begin
     select count(*) into V_TOTAL from EMP;
     Dbms_Output.put_line(雇佣总人数为:  || V_TOTAL) ;
end;
 

执行procedure:

sql窗口中:

 

begin

  EMP_COUNT;

end;

 另外补充一下procedure和function的区别:

https://stackoverflow.com/questions/25419629/functions-vs-procedures-in-oracle

1、Oracle函数必须返回一个值,而存储过程获取返回值需要通过out,in out参数。

2、普通的sql语句可以直接调用函数,但是无法使用存储过程。

3、function只能返回一个值,但是存储过程可以不返回,返回一个或者返回多个。

4、函数一般用来计算,而存储过程一般用来执行业务逻辑。

猜你在找的Oracle相关文章