Oracle存储过程USING OUT用法及用处??

作者&投稿:尾韦 (若有异议请与网页底部的电邮联系)
oracle中的存储过程,有什么作用,以及怎么在代码中使用?~

定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句
集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数
(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要
对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后
存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,
若干个有联系的过程可以组合在一起构成程序包。

优点:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。
proc = connection.prepareCall("{ call SIM_MEDICARE.P_Isinblacklist(?,?,?,?,?) }");
proc.setString(1, “”);设置传入参数
proc.registerOutParameter(4, Types.VARCHAR);注册传出参数
proc.execute();执行过程
proc.getString(4)获取结果

定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。
优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。

简单说,你在你的机器上写了个存储过程,这个存储过程像那些表里的数据一样被放在遥远的数据库服务器当中,但是它又是可执行的代码,其他能连到数据库服务器的用户,可以调用你写的存储过程
它的作用是隐藏细节,就是说,你写的存储过程代码可能很复杂,但是其他人调用它却很简单,不用具体知道它是如何做的,且一次能完成多个指令

oracle有系统存储过程和自定义存储过程2种存储过程。
系统存储过程就是由oracle预先提供的一组完成特定功能的存储过程,安装完oracle就有了。
自定义存储过程就是存在oracle数据库里由一组plsql语句组成的自定义过程(procedure)。它可以供其它oracle自定义存储过程、自定义函数和job调用或者由客户端程序调用。

动态SQL
using out v_erortx意思是insert into tab()......"这句中的变量用传出参数v_erortx绑定,比如动态SQL中有一个过程,而该过程的有个OUT 参数,此时就可以用USING OUT 的方式
Execute Immediate 'begin mypro1(:1,:2); end;'
Using In 1,Out v_erortx;

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地




如何开发ORACLE存储过程
一。 概述Oracle存储过程开发的要点是:1; 使用Notepad文本编辑器,用Oracle PL\/SQL编程语言写一个存储过程;2; 在Oracle数据库中创建一个存储过程;3; 在Oracle数据库中使用SQL*Plus工具运行存储过程;4; 在Oracle数据库中修改存储过程;5; 通过编译错误调试存储过程;6; 删除存储过程;二。环境配置包括...

oracle 中用什么命令执行一个带参数的存储过程
具体如下:1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。2、第二步,完成上述步骤后,修改存储过程。 此存储过程具有一个输入参数(pid)和一个输出参数,即通过用户id查询用户名并返回名称,见下图,转到下面的步骤。3、第三步,完成上述步骤后,调试存储过程,找到新创建的存储过程,...

Oracle 的存储过程怎么写。?
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (参数1 IN NUMBER,参数2 IN NUMBER ) IS 变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则...

Oracle 存储过程怎么执行
DECLARE v_value VARCHAR2(100); --声明一个变量,用来存放返回的值BEGINP_MES_SB_JBEffectCheck('2010-01','2010-10',v_value); --执行存储过程P_MES_SB_JBEffectCheck,该存储过程接收2个时间值的参数,返回一个varchar类型的值END;注:Oracle存储过程不能返回一张表结构,所以在存储过程里...

oracle的存储过程不能使用drop语句吗?
存储过程里面, 一般只写 DML 的语句。也就是基本的 SELECT . INSERT, DELETE , UPDATE 这一类的语句。如果你要在存储过程里面, 执行 DDL 语句。也就是 CREATE, ALTER, DROP 这一类的语句。那么需要使用动态 SQL 来处理。也就是 EXECUTE IMMEDIATE ( 'CREATE TABLE test( ...

oracle的存储过程的作用
1.存储过程可以使得程序执行效率更高、安全性更好,因为过程建立之后 已经编译并且储存到数据库,直接写sql就需要先分析再执行因此过程效率更高,直接写sql语句会带来安全性问题,如:sql注入 2.建立过程不会很耗系统资源,因为过程只是在调用才执行。3.存储过程可以用于降低网络流量,存储过程代码直接存储...

Oracle怎么导出存储过程
1、首先登录到数据库中,点击右上角有个工具栏,点击工具栏上的tools。2、选择导出用户对象,点击tools工具之后,向下查找Export User Objects功能,通过这个功能导出数据。3、选择需要导出的表或者序列或者存储过程等。在Type列中展示的是对象属性,表、序列和存储过程等。这里要选择存储过程或者序列。4、...

oracle如何执行存储过程以及如何返回一个table
-- 定义类型CREATE OR REPLACE TYPE MyTable AS OBJECT(A int, B int, C int);\/CREATE OR REPLACE TYPE MyTableResult IS TABLE OF MyTable;\/CREATE OR REPLACE FUNCTION getTestTable return MyTableResultIS -- 预期返回结果. return_Result MyTableResult := MyTableResult();BEGIN --...

oracle存储过程如何输出信息
可用DBMS_OUTPUT.PUT_LINE()对存储过程的进行输出。编写存储过程:create or replace procedure test_pro(in_num number)as M number;begin M := in_num;if 0 < M then dbms_output.put_line('输出SQL语句1');elsif M < 3 then dbms_output.put_line('输出SQL语句2');else dbms_output...

如何在Oracle中使用Java存储过程
通常有三种方法来创建java存储过程。1. 使用oracle的sql语句来创建:e.g. 使用create or replace and compile java source named "<name>" as 后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。SQL> create or replace and compile java source named "javademo1" as ...

港口区13381886111: Oracle存储过程USING OUT用法及用处?? -
冯邓凯宝: 动态SQL using out v_erortx意思是insert into tab()......"这句中的变量用传出参数v_erortx绑定,比如动态SQL中有一个过程,而该过程的有个OUT 参数,此时就可以用USING OUT 的方式 Execute Immediate 'begin mypro1(:1,:2); end;' Using In 1,Out v_erortx;

港口区13381886111: ORACLE中怎么执行存储过程 -
冯邓凯宝: ORACLE中怎么执行存储过程 方法一: exec procedure_name; execute procedure_name; 方法二:call procedure_name; 方法三: begin execute procedure_name;end; end;

港口区13381886111: oracle存储过程 -
冯邓凯宝: CREATE OR REPLACE PROCEDURE 存储过程名 (参数1 IN 类型, 参数2 IN 类型, 参数3 OUT 类型) IS--可以定义一些变量,游标.BEGIN--可以写你说的SELECT,INSERT语句.--为了方便维护 建议在每一个SELECT,INSERT的外面再用BEGIN---END块包起来,例如 BEGIN SELECT SYSDATE FROM DUAL; END; BEGIN INSERT.......; END; EXCEPTION--捕获可能发生的异常.END; 另外还可以把存储过程写在包里面,现在很多项目都是这样做的.可以查一查PACKAGE.

港口区13381886111: oracle存储过程怎么写? -
冯邓凯宝: 给你一个例子: /* 存储过程返回数据集 */ /* 1.建立带ref cursor定义的包和包体及过程 */ create or replace package pkg_test as type myrctype is ref cursor; procedure display(p_empno char,p_rc out myrctype); end; create or replace package body ...

港口区13381886111: 关于Oracle的存储过程
冯邓凯宝: 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,...

港口区13381886111: oracle怎么写存储过程 -
冯邓凯宝: 给你示例你参考下: ----------------------------建立存储过程: CREATE OR REPLACE PROCEDURE P_name--存储过程名字 ( i_var in int, --输入参数1 o_var OUT varchar2 --输出参数1 ) IS v_STR VARCHAR2(200); --定义存储过程内部的局部变...

港口区13381886111: oracle中的存储过程,有什么作用? -
冯邓凯宝: 定义:存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设...

港口区13381886111: oracle的存储过程的作用 -
冯邓凯宝: 1.存储过程可以使得程序执行效率更高、安全性更好,因为过程建立之后 已经编译并且储存到数据库,直接写sql就需要先分析再执行因此过程效率更高,直接写sql语句会带来安全性问题,如:sql注入 2.建立过程不会很耗系统资源,因为过程只...

港口区13381886111: Oracle 的存储过程怎么写.?
冯邓凯宝: oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO STATEMENT 将select...

港口区13381886111: Oracle 写存储过程 -
冯邓凯宝: create or replace function getStrLength(str varchar) return number is begin return length(str); end;------- select getStrLength('Oracle数据库') from dual; 或者 直接可用 select length('Oracle数据库') from dual;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网