此示例的主要目的主要是为了了解在PL/SQL环境下怎么创建和执行存储过程。

存储过程所涉及的DataTable:

第一步:创建游标变量

游标是ORACLE系统在内存中开辟的一个工作区,主要用来存储SELECT的数据的。通俗的讲就是用来存储查询数据的一个临时的变量。

游标的创建:

 CREATE OR REPLACE PACKAGE pkg_query AS TYPE cur_query IS REF CURSOR;
END pkg_query;

第二步:存储过程的创建

 create or replace procedure PRO_TestDemo(p_name      in NVARCHAR2,
p_datacount out VARCHAR2,
p_cur out pkg_query.cur_query) is
v_sql VARCHAR2(1000) := ''; --用来存储SQL语句的变量
v_datacount number := 0; --用来存放受影响的条数
begin
IF p_name IS NOT NULL OR p_name <> '' THEN
v_sql := 'SELECT COUNT(*) FROM TEST1 a WHERE a.name=' || p_name;
EXECUTE IMMEDIATE v_sql
INTO v_datacount;
IF (v_datacount > 0) THEN --这边的判断是为了避免不必要的语句执行
v_sql := 'SELECT * FROM TEST1 a WHERE a.name=' || p_name;
OPEN p_cur FOR v_sql;
END IF;
END IF;
end PRO_TestDemo;

创建的时候涉及了一些PL/SQL的基本语法。

如: := 为赋值,||为拼接。

in 是输入参数,out 是输出参数。

编程规范:参数尽量使用p_变量名,变量使用v_变量名。

第三步:测试执行存储过程

PL/SQL内置了测试存储过程的快捷方式。右键待测试的存储过程->测试

出现如下所示的界面:

如果是字符型数据字段输入的必须是 ‘ data’,否则如果执行到SELECT 就会报错;执行完点击p_cur最右边的红色方框就可以看出输出参数的数据了。

PL/SQL本身也是有调试功能的。

ORACLE存储过程的创建和执行的简单示例和一些注意点的更多相关文章

  1. 在ORACLE存储过程中创建临时表

    在ORACLE存储过程中创建临时表 存储过程里不能直接使用DDL语句,所以只能使用动态SQL语句来执行 --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截 ...

  2. Oracle存储过程动态创建临时表/存储过程执行权限问题--AUTHID CURRENT_USER

    关于Oracle存储过程执行权限问题的解决 http://blog.sina.com.cn/s/blog_6ceed3280101hvlo.html (2014-04-02 04:06:28) 转载▼ ...

  3. 2019-03-19 SQL Server简单存储过程的创建 删除 执行

    --创建名为 Get 的有输入参数的存储过程 create proc Get --设置默认值 @TrustId int ='001' as begin select * from [DealStruc ...

  4. Oracle 存储过程的创建,及触发器调用存储过程

    一.创建存储过程 1.存储过程写法 create or replace procedure HVM_BYQ_TJ --变压器统计信息--->入库 (id in number) as begin ...

  5. Oracle存储过程的调用和执行

    1.什么是存储过程: 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 2.无参存储过程的使用: Normal 0 7.8 磅 0 2 fals ...

  6. sqlserver 带输出参数的存储过程的创建与执行

    创建 use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery4') drop proce ...

  7. 在oracle存储过程中创建暂时表

    在oracle的存储过程中,不能直接使用DDL语句,比方create.alter.drop.truncate等. 那假设我们想在存储过程中建立一张暂时表就仅仅能使用动态sql语句了: create o ...

  8. oracle存储过程的创建和使用

    创建存储过程: 格式:create or replace procedure procedure_name(参数 参数类型) Is/as 变量1 变量1的类型: begin ----------业务逻 ...

  9. T-SQL 有参数存储过程的创建与执行

    use StudentManager go if exists(select * from sysobjects where name='usp_ScoreQuery2') drop procedur ...

随机推荐

  1. SpringCloud系列-整合Hystrix的两种方式

    Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Netflix开源的一款容错框架,同样具有自我保护能力. 本文目录 一.H ...

  2. Mysql多数据库备份

    备份数据脚本 #!/bin/bash # date是linux的一个命令 date [参数] [+格式] time=` date +%Y_%m_%d_%H_%M_%S ` # 备份输出路径 backu ...

  3. 如何成为一个伟大的 JavaScript 程序员

    这篇文章主要概述在我5年工作经验的基础上,我成为优秀JavaScript开发人员所使用的技术和资源. 当前大多数Web开发人员面临着这样一个共同的问题:他们必须在多个不同的领域领先于他人——从数据库到 ...

  4. AWD脚本之批量mysql写shell

    摘之工具包中脚本 需要安装mysqldb.windwos环境直接在https://www.codegood.com/archives/129下载MySQL-python-1.2.3.win-amd64 ...

  5. 机器学习:weka中添加自己的分类和聚类算法

    不管是实验室研究机器学习算法或是公司研发,都有需要自己改进算法的时候,下面就说说怎么在weka里增加改进的机器学习算法. 一 添加分类算法的流程 1 编写的分类器必须继承 Classifier或是Cl ...

  6. css 块元素超出文字省略表示

    .text-omit{ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } 只对块元素的设置有效 . 块元素和行内元素见 ...

  7. 手把手教你搭建HEXO免费博客

    一.环境搭建 node安装 百度搜索node,进入官网.下载稳定版: 下载好后直接打开安装 我这里将其安装在D盘(可以自己选择安装位置) 可以看到安装包中已经自带npm包管理工具 等待安装完成后,WI ...

  8. css涂鸦这样玩

    前言 上一次深扒CSS的时候,还说CSS和H5绘制复杂图形很麻烦,看了大神的操作后,感觉茅塞顿开了,哈哈. 就算可能我暂时没有用到的机会,学习一下开发者的设计思路也是受益匪浅呀. 嗯,今天要介绍的是一 ...

  9. opencv::Laplance算子

    Laplance算子 理论:在二阶导数的时候,最大变化处的值为零即边缘是零值.通过二阶导数计算,依据此理论我们可以计算图像二阶导数,提取边缘. 拉普拉斯算子(Laplance operator) 处理 ...

  10. VAD树结构体的属性以及遍历

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html VAD树的属性以及遍历 前面学习过的PFNDATABSAE是管理物 ...