oracle中procedure用法,oracle中的procedure编写和使用详解
1.创建/修改
sql;">
CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_list)]
{IS|AS}
[local_declarations]
BEGIN
executable_statements
[EXCEPTION exception_handlers]
END [procedure_name];
a.parameter_list格式如下
sql;">
parameter_name1 [in | out | in out] type,parameter_name1 [in | out] type [,........]
in 是输入参数,可以有默认值,默认值例子 emp_no in number:=7900
out 是输出参数,
b.AS/IS的区别
在视图(VIEW)中只能用AS不能用IS
在游标(CURSOR)中只能用IS不能用AS
c.local_declarations格式如下:
loacal_var1 type(limit);
如empname varchar2(20);
d.输出变量赋值
oracle 变量赋值有两种一种是直接 := 还有就是 select into
游标参数
sql;">
outcur OUT BASIC_CURSOR:
OPEN outcur FOR SELECT col1,col2 FROM tablename
e.示例
sql;">
create or replace procedure putNum(P_Date in date,P_year out varchar2) is
v_num number(8) := 1;
v_days number;
v_date date;
begin
dbms_output.put_line('intput value:' || P_year);
v_num := 1;
v_days := 1;
v_days := to_number(to_char(P_Date,'dd')); -- to_char(sysdate-20,'dd')
for i in 1 .. v_days Loop
v_date := to_date('2011/11/' || to_char(i),'yyyy/MM/dd');
--dbms_output.put_line(v_date);
end loop;
P_year := '2012';
end;
2.调用
sql;">
[EXECUTE]|[CALL] procedure_name[(parameter,…n)]
在代码块 declare 的 begin/end 中不需要 [EXECUTE]|[CALL],直接 procedure_name[(parameter,…n)]
其他外部程序需要 [EXECUTE]|[CALL]
在PL/sql中调用这个存储过程,采用了如下的代码:
sql;">
begin
Proc_Insert('hello6',25,'2005-12-24');
commit;
end;
3.显示调试信息
a.存储过程中在必要的位置添加
sql;">
DBMS_OUTPUT.put_line ('Hello World!');
b.打开DBMS_OUTPUT
sql;">
show serveroutput;
set serveroutput on;
c.测试我们的 procedure
代码如下:
exec procedure_name
oracle中procedure用法,oracle中的procedure编写和使用详解相关推荐
- java中move用法_【MFC】MoveWindow();函数使用详解
CWnd::MoveWindow void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE ); voi ...
- php 点号 的用法,基于php中echo用逗号和用点号的区别详解
php 的 基于php中echo用逗号和用点号的区别详解 实例如下: echo 1+5; echo " "; echo '1+5='."1+5"." ...
- php 自动获取头像,PHP_WordPress中用于获取及自定义头像图片的PHP脚本详解,get_avatar()(获取头像)
get_avat - phpStudy...
WordPress中用于获取及自定义头像图片的PHP脚本详解 get_avatar()(获取头像)get_avatar() 函数用来获取置顶邮箱或者用户的头像代码,在评论列表中非常常用. 这个函数提供 ...
- c++中.dll与.lib文件的生成与使用的详解
c++中.dll与.lib文件的生成与使用的详解 --------------------------------------------------------------------------- ...
- python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解
首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...
- python语言中split-python中的split()函数和os.path.split()函数使用详解
Python中有split()和os.path.split()两个函数: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表. os.path.split():将文件 ...
- python中的json函数_python中装饰器、内置函数、json的详解
装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...
- java none怎么用tomcat_在docker中部署tomcat并且部署java应用程序的步骤详解
先给大家简单说下Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是 ...
- java中String s=abc及String s=new String(abc)详解
java中String s="abc"及String s=new String("abc")详解 1. 栈(stack)与堆(heap)都是Java用来在R ...
- JS 中的 event?event:window.event什么意思?求详解。
JS 中的 event?event:window.event什么意思?求详解. 2013-04-16 00:01flying607 | 分类:JavaScript |浏览813次 <script ...
最新文章
- AutowireCapableBeanFactory,实现不必配置xml文件,动态加载bean
- CoCreateInstance 出错 ,返回 -2147221164 CLASS_NOT_REGISTERED ,原因
- 理解Git的设计思想,详解git文件夹,以及详解add、commit、push,fetch、pull、merge指令
- mqtt 异步消息 长连接 解析
- uboot2012(一)分析重定位
- 基于OpenCV的findContours查找图像连通域,并进行排序
- java web如何配置ask_Javaweb新手之路之JavaWeb开发环境配置篇
- HDLBits答案(25)_编写Testbench
- 微软相关的开发资源列表(update)
- 带你根据源码了解View的事件触发流程,主要讲解为什么子View返回true,ViewGroup就无法接收到事件的过程
- Lucene解析 - 基本概念
- mysql数据库 day03
- 【工具】Unity中如何自动化对模型减面?
- ubuntu安装nginx及其默认目录结构
- ReactWebpack 环境安装
- 如何在Python中获取文件创建和修改日期/时间?
- 2019年linux云计算就业前景,云计算前景与网络前景
- wamp mysql 端口_Wamp修改端口的方法
- 苹果怎么安装未签名的app_Windows端超简单安装未签名ipa应用
- 在linux开发板上显示图片,制作开发板的logo标签