`
chltkgg
  • 浏览: 22588 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 存储过程in out inout三种参数模式和PROMPT用法

阅读更多
oracle 存储过程in out inout三种参数模式


oracle过程中定义了in|out|in out3中参数模式,每个参数可以选择其一
in 是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变。
举个例子
create or replace procedure update_price(
p_product_id in NUMBER,
p_factor in NUMBER)
AS
.....
你在引用这个过程的时候给参数传入值
exexute update_price(2,2.5);
这是定义的2个参数就得到了值,in模式下值不能变

out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程
in out 表示高参数可以向该过程中传递值,也可以将某个值传出去
简单的说in参数就是传入但存储过程里面处理的参数
out参数就是返回值的参数。
in参数就像c++语言里函数一般的参数那样
而out函数就像c++里函数的引用类型参数一样
不知道我比喻是否正确,请高手指点
create or replace procedure gettest2(stdname in varchar2,p_cursor in out types.mytype)
as
begin
open p_cursor for select * from test where name=stdname;
end;
例如上面的存储过程
stdname是in参数,传进去供查询语句使用
p_cursor是 out参数,返回查询的结果集

--------------------------------------------------------------------------------------------------------------------

oracle 存储过程 in out2009-08-11 16:30
创建过程语法:

create [or replace] procedure procedure_name
[ (argment [ { in| in out }] type,
argment [ { in | out | in out } ] type
{ is | as }
<类型.变量的说明>
( 注: 不用 declare 语句 )
Begin
<执行部分>
exception
<可选的异常处理说明>
end;

l 这里的IN表示向存储过程传递参数,OUT表示从存储过程返回参数。而IN OUT 表示传递参数和返回参数;
l 在存储过程内的变量类型只能指定变量类型;不能指定长度;
l 在AS或IS 后声明要用到的变量名称和变量类型及长度;
l 在AS或IS 后声明变量不要加declare 语句。


例1.

CREATE OR REPLACE PROCEDURE ModeTest (
p_InParameter IN NUMBER,
p_OutParameter OUT NUMBER,
p_InOutParameter IN OUT NUMBER) IS

v_LocalVariable NUMBER;

BEGIN
/* 分配 p_InParameter 给 v_LocalVariable. */
v_LocalVariable := p_InParameter; -- Legal
/* 分配 7 给 p_InParameter. 这是非法的,因为声明是IN */
p_InParameter := 7; -- Illegal

/* 分配 7 给 p_InParameter. 这是合法的,因为声明是OUT */
p_OutParameter := 7; -- Legal

/* 分配 p_OutParameter 给 v_LocalVariable.这是非法的,因为声明是OUT */
v_LocalVariable := p_outParameter; -- Illegal

/* 分配 p_InOutParameter 给 v_LocalVariable. 这是合法的,因为声明是IN OUT */
v_LocalVariable := p_InOutParameter; -- Legal

/*分配 7 给 p_InOutParameter. 这是合法的,因为声明是IN OUT */
p_InOutParameter := 7; -- Legal
END ModeTest;
/

§16.2.2 使用过程
存储过程建立完成后,只要通过授权,用户就可以在SQLPLUS 、Oracle开发工具或第三方开发工具来调用运行。Oracle 使用EXECUTE 语句来实现对存储过程的调用。

EXEC[UTE] procedure_name( parameter1, parameter2…);

例:
CREATE PACKAGE emp_data AS
TYPE EmpRecTyp IS RECORD (
emp_id NUMBER(4),
emp_name VARCHAR2(10),
job_title VARCHAR2(9),
dept_name VARCHAR2(14),
dept_loc VARCHAR2(13));
TYPE EmpCurTyp IS REF CURSOR RETURN EmpRecTyp;
PROCEDURE get_staff (
dept_no IN NUMBER,
emp_cv IN OUT EmpCurTyp);
END;
/
CREATE PACKAGE BODY emp_data AS
PROCEDURE get_staff (
dept_no IN NUMBER,
emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, job, dname, loc FROM emp, dept
WHERE emp.deptno = dept_no AND emp.deptno = dept.deptno
ORDER BY empno;
END;
END;
/
COLUMN EMPNO HEADING Number
COLUMN ENAME HEADING Name
COLUMN JOB HEADING JobTitle
COLUMN DNAME HEADING Department
COLUMN LOC HEADING Location
SET AUTOPRINT ON
VARIABLE cv REFCURSOR
EXECUTE emp_data.get_staff(20, :cv) 


-----------------------------------
PROMPT


oracle 用 prompt实现打印功能,多用于提示信息。输入命令prompt tablename1;
标准输出为tablename1
PROMPT 告诉SQL*Plus 在屏幕上书写一行文字。你在这里使用了两个PROMPT命令;每个命令都在屏幕上打印一个空行,这对于垂直间距很有好处。ACCEPT命令是等待用户输入一个置换变量的值。ACCEPT命令中可选的PROMPT 子句在用户输入数值的同一行中显示了一条信息。你在PL/SQL 块的外面放置PROMPT 和 ACCEPT 是正确的:他们是SQL*Plus 命令,不是PL/SQL 。


分享到:
评论

相关推荐

    利用python-oracledb库连接Oracledb数据库,使用示例

    python-oracledb的源码和使用示例代码, python-oracledb 1.0,适用于Python versions 3.6 through 3.10. Oracle Database; This directory contains samples for python-oracledb. 1. The schemas and SQL ...

    SQLPrompt查询分析界面提示功能

    当用户在编写SQL时,工具会根据上下文提供相关的列名、表名、函数、关键字和存储过程等建议。这种智能感知技术能够减少手动输入,提高编码速度,同时降低因拼写错误或遗忘语法导致的错误。此外,SQLPrompt还能识别...

    SQLPrompt 7

    5. **参数提示**:当使用函数或存储过程时,SQLPrompt会显示参数列表和描述,帮助开发者准确传递参数。 6. **代码分析**:对复杂的SQL查询进行深度分析,找出可能存在的性能瓶颈,如子查询优化、索引使用建议等。 ...

    Sqlserver插件Prompt

    Sqlserver插件Prompt是一款专为解决Visual Studio用户在使用数据库时缺少智能提示和不方便排版问题的实用工具。它能够极大地提升SQL Server数据库开发的效率和体验,让你在编写SQL语句时更加得心应手。 Prompt插件...

    SQL+Prompt

    1. **SQL自动补全**:SQL+Prompt提供了一个高效且全面的SQL代码补全系统,它可以根据上下文和历史记录自动完成SQL关键字、表名、列名、函数和存储过程,大大减少了手动输入的时间和出错的可能性。 2. **语法高亮和...

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示

    SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和...找到未使用的变量和参数

    asp.net 中Alert、Confirm、Prompt的用法

    Alert、Confirm和Prompt是JavaScript中的三个内置对话框函数,常用于在网页上显示警告信息、确认对话框或获取用户输入。以下将详细讲解这三个函数的用法。 1. **Alert()** `alert()` 函数用于向用户显示警告对话框...

    SQLPrompt7安装文件和注册机

    SQLPrompt7是一款强大的SQL代码补全和智能提示工具,由Redgate Software公司开发,专为数据库开发者和管理员设计。这款工具极大地提升了SQL编程的效率,通过自动完成代码、检查语法错误、提供性能建议等功能,帮助...

    sql prompt 4.0 更新

    1. **代码补全和建议**:SQL Prompt以其智能代码补全功能而闻名,4.0版本可能会加强这一特性,提供更精确的建议,包括对T-SQL语句、函数、存储过程等的自动完成,帮助开发者更快地编写和修正代码。 2. **性能优化**...

    PROMPT

    PROMPT

    SQL.Prompt5.3

    SQL Prompt介绍: SQL Prompt是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码...找到未使用的变量和参数

    sqlprompt_hf

    6. **参数提示**:当使用存储过程或函数时,会显示参数信息,减少查找文档的时间。 7. **性能分析**:通过分析SQL语句,提供性能优化建议,帮助识别和解决潜在的性能瓶颈。 8. **版本控制集成**:与常见的版本控制...

    SQLPrompt_7.0.0.40

    SQLPrompt提供了丰富的自动完成功能,它可以在用户键入SQL语句时提供实时的建议,包括表名、列名、函数、存储过程和其他SQL关键字。这不仅减少了拼写错误,也大大加快了编码速度。 2. 智能提示(Code Completions...

    SQLPrompt_7工具(包含注册机和使用说明)

    SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性--这在开发者使用的是不大熟悉的...找到未使用的变量和参数

    一个集成了多个大型语言模型的浏览器扩展程序,它由三部分组成:游戏模式、聊天模式和Prompt IDE

    ChatDev IDE 是一个集成了多个大型语言模型的浏览器扩展程序,它由三部分组成:游戏模式、聊天模式和Prompt IDE。 您可以个性化游戏中的NPC,自定义位置的提示词,并使用可视化的GPTs编辑器构建您的GPTs,让NPC多...

    SQL.Prompt5.3.rar{内含破解教程和注册机}

    SQL Prompt介绍: SQL Prompt是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码...找到未使用的变量和参数

    SQL格式化_Prompt

    4. **数据库对象导航**:Prompt可能包含一个直观的数据库对象浏览器,使用户能轻松地浏览和操作数据库中的表、视图、存储过程等。 5. **性能分析**:对于复杂的查询,Prompt可能提供性能分析工具,帮助开发者找出...

    SQLPrompt 6 (含注册)

    SQLPrompt 6具有实时语法检查功能,可以在编写过程中发现潜在的语法错误和不规范用法,并给出修正建议。这有助于在早期阶段发现并解决问题,减少调试时间。 4. 表和列的智能感知: 在编写SQL时,SQLPrompt 6能够...

    SQL Prompt 3

    SQL Prompt 3是一款高效能的SQL代码编辑辅助工具,它为数据库开发人员提供了一系列强大的功能,旨在提升SQL编写效率和代码质量。与SQL Assist类似,它专注于帮助用户编写更准确、更规范的SQL语句,但相比后者,SQL ...

    SQLPrompt格式化工具

    通过这些特性,SQLPrompt不仅简化了SQL开发过程,还提高了代码质量和团队合作效率,是数据库开发者不可或缺的得力助手。"绿盟.url"可能是一个链接,用于获取更多关于SQLPrompt的信息或者访问其官方网站。 总的来说...

Global site tag (gtag.js) - Google Analytics