--函数的创建
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. 理解 auto_ptr<T>

    1.auto_ptr<T>解决什么问题? 在堆上获取的资源,客户可能会忘记delete,或者由于异常没有执行到delete,导致资源泄漏.在栈上分配的对象,有个特点,不论出现什么情况,超出 ...

  2. MySQL和PostgreSQL 导入数据对照

    在虚拟机上測评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 由于是虚拟机上的測评,所以时间仅仅做參考,不要太较真, 看看就好了.MySQL 工具:    1. 自带 ...

  3. android学习日记12--布局管理器

    1.概述 布局管理器的用途: a.可以更好的管理组件; b.通过使用布局管理器,Android应用程序可以做到平台无关性 布局管理器都是ViewGroup的子类,所有可充当容器的父类都是ViewGro ...

  4. [原创]VS2013 EF6连接MySql需要几步?

    精简的美丽...... 1.安装mysql server下载地址 http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.21-winx64.zip注意: ...

  5. C#_mvc_ajax_return data

    假设cshtml文件中是这样的: <script type="text/javascript"> $(document).ready(function(){ $(&qu ...

  6. java_包含抽象方法的枚举类

    package ming; enum Operation { PLUS { public double eval(double x, double y) { return x + y; } }, MI ...

  7. 【转】int const A::func()和int A::func() const

    int const A::func() { return 0; }int A::func() const { return 0; } 上面的代码是合法的,其中A::func成员函数[只能在成员函数后面 ...

  8. js用斜率判断鼠标进入div的四个方向

    网上大部分判断鼠标移入div移入移出都是使用一下方法: 这个方法确实十分奇特,使用起来十分方便. 后来自己看了一些文章,看到有另一种以斜率的方法来判断鼠标的移动方向. 上图是此方法的示意图,以浏览器左 ...

  9. JAVA白盒安全测试需要关注的API

    JAVA白盒安全测试需要关注的APIhttp://blog.csdn.net/testing_is_believing/article/details/19502167

  10. xml读取

    select isnull(CamSeqId, '') as CamSeqId,isnull(cam_config.value('(xml/cam/StardardValue)[1]','int'), ...