定位符和命名符

create or replace procedure CallMe(p_ParameterA varchar2,

p_ParameterB number,

p_ParameterC boolean,

p_ParameterD date) as

begin

null;

end CallMe;

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(v_Variable1, v_Variable2, v_Variable3, v_Variable4);

end;

实际参数通过位置与形式参数相关联:

v_Variable1与p_ParameterA相关联,

v_Variable2与p_ParameterB相关联,

v_Variable3与p_ParameterC相关联,

v_Variable4与p_ParameterD相关联,

这种变量叫做定位符(positional notation)。

也可以用命名符(named notation)来调用过程:

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(p_ParameterA => v_Variable1,

p_ParameterB => v_Variable2,

p_ParameterC => v_Variable3,

p_ParameterD => v_Variable4);

end;

在命名符中,对于每一个参数,都包含了形式参数和实际参数。

这就允许在需要时重新整理参数的顺序。

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(p_ParameterB => v_Variable2,

p_ParameterC => v_Variable3,

p_ParameterD => v_Variable4,

p_ParameterA => v_Variable1);

end;

定位符和命名符也可以在同一个调用中混合使用。

第一个参数必须通过定位符指定,而其余的参数可以根据名字指定。

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(v_Variable1,

p_ParameterC => v_Variable3,

p_ParameterD => v_Variable4,

p_ParameterB => v_Variable2);

end;

--ok

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(p_ParameterA => v_Variable1,

v_Variable2,

p_ParameterD => v_Variable4,

p_ParameterC => v_Variable3);

end;

--output

第 8 行出现错误:

ORA-06550: 第 8 行, 第 10 列:

PLS-00312: 一个定位相关参数没有说明其相关性

ORA-06550: 第 7 行, 第 3 列:

PL/SQL: Statement ignored

定位符                                            命名符

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

更多依靠实际参数的适当名字来说明每个符号的作用      明确说明实际参数与形式参数的联系

用于形式参数和实际参数的名字是独立的;可以改变      可能更难维护,因为若形式参数的名字改变,使用

一个而不用修改另一个                                命名对过程的调用都要改变

因为若形式参数的顺序改变,使用定位符对过程的调      用于形式参数和实际参数的顺序是独立的;可以改变

用都要改变,所以可能更难维护                        一个而不用修改另一个

比命名符更简洁                                      需要更多的代码,因为形式参数和实际参数都被包括

在调用过程中

带有缺省值的参数必须在参数列表的最后                允许形式参数使用缺省值,而不管哪个参数有缺省值

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

oracle无效的关联运算符,菜鸟请教:关联操作符=>用法相关推荐

  1. oracle无效的关系运算符_每日一课 | Java 8中的instanceof运算符和访客模式替换

    我有一个梦想,不再需要操作员和垂头丧气的instanceof ,却没有访客模式的笨拙和冗长.所以我想出了以下DSL语法: Object msg = //... whenTypeOf(msg).     ...

  2. C++primer第十一章 关联容器 11.3关联容器操作 11.4 无序容器

    11.3关联容器操作 除了表9.2(第295页)中列出的类型,关联容器还定义了表11.3中列出的类型.这些类型表示容器关键字和值的类型. 对于set类型,key_type和value type是一样的 ...

  3. scrum敏捷项目管理工具leangoo卡片关联上线(可关联卡片,看板,项目)

    本次更新,企业版新增卡片关联功能. 卡片关联 在卡片上,用户可以将和任务相关的卡片.看板.脑图.项目关联到任务卡片上,关联后,用户既可以快速查看和此任务相关的信息,也可以快速浏览和访问相关内容,从而简 ...

  4. jpa多表关联查询_JPA【关联查询篇】

    摘要:本文主要介绍JPA的多表关联查询(一对一.一对多.双向关联.多对一.多对多)以及N+1查询的优化. 1. JPA多表关联查询 多表关联查询就是实现使用一个实体类对象操作或者查询多个表的数据. 配 ...

  5. oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询...

    oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询博客分类: oracle OracleSQL 比较运算符 >,<:大于,小于 >=. ...

  6. java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除

    hibernate执行多对多关联查询时,关联表数据被删除 本帖最后由 binbb521 于 2012-12-04 11:48:29 编辑 S2SH框架开发的网站,执行两个多对多关系的表查询时,关联两个 ...

  7. oracle无法解析连接符,oracle无法解析连接字符串,请教

    oracle无法解析连接字符串,请教 C# code: string StrConnection = "Server=127.0.0.1;Data Source=kagami;User ID ...

  8. Outlook2010怎么关联邮箱 Outlook邮箱关联的教程

    Outlook想要关联自己的邮箱,该怎么关联呢?下面我们就来看看详细的教程. 1.首先我们登录进入我们的Outlook,点击文件-添加账户 Outlook2010怎么关联邮箱? Outlook邮箱关联 ...

  9. hibernate hql 关联查询_Hibernate【关联查询篇】

    1. Hibernate 关联查询 1.1. 说明 Hibernate框架支持通过配置映射关系实现多表关联查询. 1.2. 类型 关联查询分为:一对一(one-to-one).一对多(one-to-m ...

最新文章

  1. 几个cvebase_ifo基础信息融合在一起
  2. java如何做到判断一个字符串是否是数字
  3. 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——1.5 安装SMO
  4. 汇编解析(4)-BIOS
  5. NoHttp开源Android网络框架1.0.0之架构分析
  6. php 基类 是什么,PHP Model基类
  7. 做生意如何选一个好的行业,请记住这4点
  8. C++实现LRU(Least-Recently Used)缓存算法
  9. 有道云词典--翻译/屏幕取词翻译
  10. groovy java to swift_groovy数据类型 - Groovy教程
  11. lvds接口_LVDS,接口,时序讲解,非常好的文章
  12. mysql热备份使用方案_MySQL双机热备份实施方案
  13. elasticsearch单机版安装及安装过程踩的坑整理
  14. 渗透测试工程是的主要工作
  15. 2017年Q1中国服务器市场研究报告
  16. 申请工作居住证政策解答
  17. Delphi 汇编学习(八)--- 图像水平镜像垂直镜像的极致优化
  18. 电脑族的视力保护常识
  19. BERT和ERNIE中[PAD],[CLS],[SEP],[MASK],[UNK]所代表的含义
  20. PHP CURL Authorization: Basic 获取token

热门文章

  1. 传图识字java_Java:全面 清晰的 NIO 学习攻略
  2. 封装(构造方法,构造器)
  3. Rest Framework
  4. C++刷称号——2707: 素数与要素
  5. Canvas应用绚烂效果-creatjs实现
  6. Direct3D中的绘制(3)
  7. 从决策树到xgboost(一)
  8. 401 binary watch
  9. Leetcode 1559二维网格图中探测环 技巧DFS|剪枝
  10. linux日志服务器配置在哪个文件,Linux中日志的基本配置(syslog)