oracle 存储过程 建表插值等
发布时间:2020-12-12 13:46:32 所属栏目:百科 来源:网络整理
导读:建表、插值的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) no
建表、插值的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、函数一般用来计算,而存储过程一般用来执行业务逻辑。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |