--函数的创建
create function func1(dno number)
return NUMBER--必须带有返回值
is
v_max number;--定义返回值
begin
select max(sal) into v_max--赋值
from emp where deptno= dno;
RETURN v_max;--返回
end;
--函数的调用,只能是表达式的一部分,不能单独调用
select * from emp where sal= func1(10);
-------------------------------------------------------------------------------
--创建过程存在则替换,带输出参数
create or replace procedure proc1(dno in number,maxsal out number)----------参数不能有(10)这样的长度控制
is
v_maxsal number;
begin
select max(sal) into v_maxsal
from emp where deptno= dno;
maxsal := v_maxsal;--给输出参数赋值
dbms_output.put_line(v_maxsal);--打印
end; --调用过程
declare maxsal number;
begin
proc1(10,maxsal);
dbms_output.put_line(maxsal);
end;
--------------------------------------------------------------------------------
/*
创建返回多行的存储过程
*/
create or REPLACE procedure proc_test
is
begin
DECLARE cursor cc is SELECT * from emp;--这里定义一个游标集合变量cc
begin for r in cc loop--对游标cc进行遍历
dbms_output.put_line(r.ename || ':' || r.sal);
end loop;--结束遍历
end;
end;
---调用
begin
proc_test();
end;

  1.函数必须是和语句一起执行,不能被单独执行,必须有返回值。

2存储过程 可以被单独执行,没有返回值。

下面是在PL/SQL中使用动态sql语句:

  -------Oracle中 DML:insert,delete,update
-------TCL:COMMIT,ROLLBACK,SAVEPOINT ONT,ROLLBACK TO ONE;
-------DQL:SELECT
--PL/SQL 中使用本地动态sql
DECLARE
str VARCHAR2(200);
outid number;
begin
--values(:1,:2)占位符,returning id into :3将id赋值给第三个参数
str :='insert into test123 values(:1,:2) returning id into :3';
execute immediate str --运行动态sql
using 1,'php'--给占位符赋值 1 2
RETURNING into outid;--3
dbms_output.put_line(outid);
end;

  

Oracle procedure存储过程/function函数的更多相关文章

  1. java下实现调用oracle的存储过程和函数

    在Oracle下创建一个test的账户,然后 1.创建表:STOCK_PRICES --创建表格 CREATE TABLE STOCK_PRICES( RIC VARCHAR() PRIMARY KE ...

  2. Java代码调用Oracle的存储过程,存储函数和包

    Java代码调用存储过程和存储函数要使用CallableStatement接口 查看API文档: 上代码: java代码调用如下的存储过程和函数: 查询某个员工的姓名  月薪 职位 create or ...

  3. [转]Oracle中存储过程和函数的区别

    原文地址:http://blog.csdn.net/tender001/article/details/8066203 存储过程和函数: 例子: //创建过程 create or replace pr ...

  4. Oracle数据库—— 存储过程与函数的创建

    一.涉及内容 1.掌握存储过程与函数的概念. 2.能够熟练创建和调用存储过程与函数. 二.具体操作 1.创建存储过程,根据职工编号删除scott.emp表中的相关记录. (1)以scott 用户连接数 ...

  5. Oracle 在存储过程或函数中执行字符串sql

    有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCORE (CUR ...

  6. oracle procedure存储过程

    1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS/AS 变量1 ; 变量2 DATE: BEG ...

  7. 【学习】java下实现调用oracle的存储过程和函数

    在oracle下创建一个test的账户,然后按一下步骤执行: 1.创建表:STOCK_PRICES --创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRI ...

  8. oracle调用存储过程和函数返回结果集

    在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得 ...

  9. oracle的存储过程和函数(PL/SQL)

    czmmiao 存储过程概述 存储过程是子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库.是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出.一个存储过程通 ...

随机推荐

  1. [AngularJS] Reusable directive, require from parent controller

    Glorious Directives for Our Navigation NoteWrangler navigation has now been broken into two parts: t ...

  2. kernel debuging

    http://blog.csdn.net/XscKernel/article/category/1276234

  3. 六、Socket之UDP异步传输文件-实现稳定的文件传输

    上一篇文章五.Socket之UDP异步传输文件-实现传输中取消传送中,还遗留了一个传输文件最大的问题,就是传输过程中丢包,这样在文件传输过程中就会卡住了,这篇文章就来解决文件传输中的丢包问题,实现稳定 ...

  4. Dashboards (Android)

    his page provides information about the relative number of devices that share a certain characterist ...

  5. 反射机制及开源框架xUitls的使用,使用HttpUtils通过断点续传下载文件

    反射: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的任意一个方法和属性 Java反射机制主要提供下面几种用途: 1•在运行时判断 ...

  6. Flume简介与使用(二)——Thrift Source采集数据

    Flume简介与使用(二)——Thrift Source采集数据 继上一篇安装Flume后,本篇将介绍如何使用Thrift Source采集数据. Thrift是Google开发的用于跨语言RPC通信 ...

  7. Elasticsearch template(待续...)

    动态模板 Dynamic templates allow you to define custom mappings that can be applied to dynamically added ...

  8. Centos 7中 vim 中文乱码

    参考:http://www.myexception.cn/operating-system/1534005.html 一. sudo vim /etc/vimrc 在文件中加入如下几行:      s ...

  9. 通过样式调整input 中password text默认长度

    原文出处 <input >标签内的type分别为password和text时其默认长度和宽度不一致,而在做登陆框时往往需要将它们的长度和宽度设置一致.如下的方法可以通过css控制使其一致: ...

  10. 为 ASP.NET Web API 创建帮助页

    http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages 以前实例 ...