无参数的存储过程:
create or replace procedure out_time
is
begin
dbms_output.put_line(to_char(sysdate,'yyyy-mm-dd'));
end;
/
调用: exe
无参数的存储过程:
create or replace procedure out_time
is
begin
dbms_output.put_line(to_char(sysdate,'yyyy-mm-dd'));
end;
/
调用: exec out_time;
--------------------------------------------------------------
带有in参数的过程:
create or replace procedure add_employee
(
eno in number,
name in varchar2,--注意,定义参数的时候不能指定大小
sal in number
)
is
begin
insert into emp(empno,ename,sal) values(eno,name,sal);
end;
/
调用:exec add_employee(5569,'lixin',5589);
--------------------------------------------------------------
带有out 参数的过程:
create or replace procedure query_employee
(
eno in number,
name out varchar2,
salary out number
)
is
begin
select ename, sal into name, salary from emp where empno = eno;
end;
/
调用:
SQL> var name varchar2(20);
SQL> var salary number;
SQL> exec query_employee(7788,:name,:salary);
PL/SQL procedure successfully completed
name
---------
SCOTT
salary
---------
3000
--------------------------------------------------------------
带有in out参数的过程:
create or replace procedure pro_in_out
(
num1 in out number,
num2 in out number
)
is
v1 number;
v2 number;
begin
v1 := num1 / num2;
v2 := mod(num1,num2);
num1 := v1;
num2 := v2;
end;
/
调用:
SQL> var n1 number;
SQL> var n2 number;
SQL> exec :n1 := 100;
SQL> exec :n2 := 30;
SQL> exec pro_in_out(:n1, :n2); --不能直接传值,必须传变量,因为是in out类型参数
PL/SQL procedure successfully completed
n1
---------
3.33333333333333
n2
---------
10
传递参数时可以根据位置传递,也可以根据名称传递:
exec add_employee(123,name=>'lixin',sal=>88564);
查看过程源码:
select text from user_source where name = 'ADD_EMPLOYEE';
删除过程:
drop procedure add_employee;
PL/SQL 存储过程的更多相关文章
-
PL/SQL存储过程编程
PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...
-
PL/SQL — 存储过程
存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库.是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出.一个存储过程通常包含定于部分,执行部分,Exc ...
-
pl/sql 存储过程执行execute immediate 卡住
在存储过程中,执行了create table.update table.insert into table 但是在使用pl/sql的存储过程调试的时候,一有问题就直接卡住(标识:执行中.....) 后 ...
-
关于oracle PL/SQL存储过程 PLS-00905 object is invalid,statement ignored问题的解决
昨天在学习oracle存储过程的时候,写了一个存储过程的demo,语句是这样的: )) AS psssal TESTDELETE.TESTID%TYPE; BEGIN SELECT TESTID IN ...
-
PL/SQL存储过程
一.概述 过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,均存储于数据库中. 并通过输入.输出和输入输出参数与其调用者交换信息.唯一区别是函数总向调用者返回数据. 二.存储过程详解 ...
-
Oracle笔记 十、PL/SQL存储过程
--create or replace 创建或替换,如果存在就替换,不存在就创建 create or replace procedure p is cursor c is select * from ...
-
oracle pl/sql 存储过程
存储过程用于执行特定的操作,当建立存储过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分:通过使用输出参数,可以将执行部分的数据传递到 ...
-
pl sql 存储过程 执行sql 锁死状态
背景 这是在一个不知如何表达的项目中,我在这个项目中做的就是不知如何表达的事情.只是想着技术,到是通过这个项目把存储过程基本能用的都用了,oracle开发的技术我感觉基本都全活了.别人没搞定的我搞定了 ...
-
Oracle数据库--PL/SQL存储过程和函数的建立和调用
1.存储过程建立的格式: create or replace procedure My_Procedure is begin --执行部分(函数内容); end; / 例子:(以hr表为例) crea ...
随机推荐
-
mysql主备(centos6.4)
服务器基本环境: 两台centos6.4.iptables diabled .selinux disabled 两台的hosts解析 #yum install mysql -y //这个一定要装 ...
-
sql server和mysql中分别实现分页功能
MySQL 在MySQL中,可以用 Limit 来查询第 m 列到第 n 列的记录, 例如: select * from tablename limit m, n sql="select * ...
-
if语句解一元二次方程~
#include<stdio.h>#include<math.h> void main(){ double a,b,c,x1,x2; printf("请输入a&q ...
-
Arcgis Server ecp(许可)
Arcgis Server 10 许可(新建.txt文件,然后拷贝好以下内容,然后修改为 .ecp文件即可): 3dengine,100,ecp.arcgis.server,none,KGE784S1 ...
-
WM_NCHITTEST有21种取值,常用的有HTCAPTION,HTCLIENT,HTBORDER,HTSYSMENU,HTTRANSPARENT,罗列所有VCL里对其使用的情况
我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口. 一个容易想到的方案 ...
-
CF#462 div1 D:A Creative Cutout
CF#462 div1 D:A Creative Cutout 题目大意: 原网址戳我! 题目大意: 在网格上任选一个点作为圆中心,然后以其为圆心画\(m\)个圆. 其中第\(k\)个圆的半径为\(\ ...
-
idea2018版tomcat基本配置
前言 在配置tomcat之前,要先创建一个javaweb的工程 打开idea的主界面,在菜单中点击File,出现以下的图 点击选择 Application Server 点击选择 Tomcat Ser ...
-
day30 hashlib模块
hashlib 提供摘要算法 最常见的就是MD5,当然一般来说MD5已经被足够了 不管算法多不一样,但是摘要的功能是不变的 对于相同的字符串进行摘要,使用同一个算法得到的值总是不变的 不同算法的话,会 ...
-
templates的语法
1.变量 1.作用:将后端的数据传递到模板进行显示 2.允许作为变量的数据类型 字符串,整数,列表,元组,字典,函数,对象 3.变量的语法 变量传递给前端必须要封装到字典中才能传递给模板 1.使用 l ...
-
python标准库介绍——12 time 模块详解
==time 模块== ``time`` 模块提供了一些处理日期和一天内时间的函数. 它是建立在 C 运行时库的简单封装. 给定的日期和时间可以被表示为浮点型(从参考时间, 通常是 1970.1.1 ...