Oracle procedure存储过程/function函数
--函数的创建
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函数的更多相关文章
- java下实现调用oracle的存储过程和函数
在Oracle下创建一个test的账户,然后 1.创建表:STOCK_PRICES --创建表格 CREATE TABLE STOCK_PRICES( RIC VARCHAR() PRIMARY KE ...
- Java代码调用Oracle的存储过程,存储函数和包
Java代码调用存储过程和存储函数要使用CallableStatement接口 查看API文档: 上代码: java代码调用如下的存储过程和函数: 查询某个员工的姓名 月薪 职位 create or ...
- [转]Oracle中存储过程和函数的区别
原文地址:http://blog.csdn.net/tender001/article/details/8066203 存储过程和函数: 例子: //创建过程 create or replace pr ...
- Oracle数据库—— 存储过程与函数的创建
一.涉及内容 1.掌握存储过程与函数的概念. 2.能够熟练创建和调用存储过程与函数. 二.具体操作 1.创建存储过程,根据职工编号删除scott.emp表中的相关记录. (1)以scott 用户连接数 ...
- Oracle 在存储过程或函数中执行字符串sql
有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCORE (CUR ...
- oracle procedure存储过程
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS/AS 变量1 ; 变量2 DATE: BEG ...
- 【学习】java下实现调用oracle的存储过程和函数
在oracle下创建一个test的账户,然后按一下步骤执行: 1.创建表:STOCK_PRICES --创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRI ...
- oracle调用存储过程和函数返回结果集
在程序开发中,常用到返回结果集的存储过程,这个在mysql和sql server 里比较好处理,直接返回查询结果就可以了,但在oracle里面 要 out 出去,就多了一个步骤,对于不熟悉的兄弟们还得 ...
- oracle的存储过程和函数(PL/SQL)
czmmiao 存储过程概述 存储过程是子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库.是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出.一个存储过程通 ...
随机推荐
- Mysql 培训
1. Mysql 培训 1.1. 培训目的 本文档是针对MySQL 数据库方面的基础培训,为了使项目组成员能够达到使用MySQL 数据库的目的. 1.2. 培训对象 开发者 1.3. 经常使用词及符 ...
- [Javascript] Webpack Loaders, Source Maps, and ES6
Using ES6 To use ES6, we need loader. Modify webpack.config.js file: module.exports = { entry: './in ...
- Vi、Vim及Gedit编辑器
搜索(注意,不需要输入:号.也可以先输入:号再键入命令) /string……………………向后搜索,从光标处向文件尾搜索,按n键继续搜索下一个 ?string……………………向前搜索 注意:搜索时会将所 ...
- [转]Creating Unit Tests for ASP.NET MVC Applications (C#)
本文转自:http://www.asp.net/mvc/tutorials/older-versions/unit-testing/creating-unit-tests-for-asp-net-mv ...
- void指针、NULL指针和未初始化指针
一个指针可以被声明为void类型,比如void *x.一个指针可以被赋值为NULL.一个指针变量声明之后但没有被赋值,叫做未初始化指针. 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- 【Fibonacci】BestCoder #28B Fibonacci
Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- jmap命令
一.jmap -heap PID using parallel threads in the new generation. ##新生代采用的是并行线程处理方式 using thread-local ...
- h2database源码浅析:SQL语句的执行
最近想好好了解一下数据库的原理,下载了h2database的源码,准备好好看看.此过程的一些想法,暂且记下来,权当做读码笔记吧! 为了调试准备的测试用例: @Test public void test ...
- getOutputStream() has already been called for this response异常的原因和解决方法
今天在调试一个小web项目时,验证码不显示了,而且后台报错 getOutputStream() has already been called for this response 经过查找得知: 在t ...
- Sql Server Profiler保存与重演跟踪
重演跟踪的作用 可以将一个跟踪当做测试工具,当按照正确的顺序调用某些存储过程是肯能会重新生成特定的故障. 跟踪模板