具有多个 IN 参数的存储过程

2024-02-25

我得到了以下程序:

create or replace PROCEDURE create_indexes 
(tbl_name_index IN VARCHAR2, 
tbl_name_vehicle IN VARCHAR2, 
tbl_name_dealer IN VARCHAR2, 
tbl_name_hst IN VARCHAR2, 
tbl_name_dms IN VARCHAR2, 
tbl_name_usertype IN VARCHAR2, 
tbl_name_search IN VARCHAR2) as

  COUNT_INDEXES INTEGER;
BEGIN
  SELECT COUNT(*)
  INTO COUNT_INDEXES
  FROM USER_INDEXES
  WHERE table_name = tbl_name_index and index_name not like '%UNIQUE%';

  IF COUNT_INDEXES <= 0 THEN
         EXECUTE IMMEDIATE 'COMMAND';


    end If;
end;

正如您所看到的,定义了几个参数。我的问题是,如何使用多个输入执行此过程?


从 SQL 工作表中,调用您的过程匿名块 http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/overview.htm#sthref258:

begin
  create_indexes (
    tbl_name_index    => 'TABLE_NAME',
    tbl_name_vehicle  => 'Vehicle name',
    tbl_name_dealer   => 'value 3',
    tbl_name_hst      => 'value 4',
    tbl_name_dms      => 'value 5',
    tbl_name_usertype => 'value 6',
    tbl_name_search   => 'value 7');
end;
/

正如 Jeffrey Kemp 所指出的,最好使用命名参数表示法,而不是位置表示法;它使它更清晰,有助于避免错误(特别是参数的顺序错误),可以减少未来更改对过程的影响,并且当您有带有默认值的参数时更加灵活 - 因此您可以跳过任何您不知道的参数想要明确设置。

您还可以使用execute command http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve022.htm作为一种捷径,但由于有很多参数,坚持匿名块可能更容易 - 无论如何,它在幕后都是一样的。许多 SQL*Plus 文档也适用于 SQL Developer。

SQL 开发人员文档还向您展示如何执行和调试过程 http://docs.oracle.com/cd/E12151_01/doc.150/e12152/intro.htm#sthref172.

如果这是您第一次涉足 PL/SQL,那么可能值得回顾一下文档 http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/overview.htm。我不确定你要使用你所显示的代码去哪里;似乎有点困惑。在 PL/SQL 中创建索引之类的对象是不常见的,因为它们应该在创建或更新模式时构建一次,因此将其作为可重用代码似乎有点毫无意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有多个 IN 参数的存储过程 的相关文章

  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • oracle日期序列?

    我有一个 oracle 数据库 我需要一个包含 2 年所有日期的表 例如来自01 01 2011 to 01 01 2013 首先我想到了一个序列 但显然唯一支持的类型是数字 所以现在我正在寻找一种有效的方法来做到这一点 欢呼骗局 如果您想
  • 从Oracle表中删除重复行

    我正在 Oracle 中测试某些内容并使用一些示例数据填充表 但在此过程中我不小心加载了重复记录 因此现在我无法使用某些列创建主键 如何删除所有重复行并只保留其中一行 Use the rowid伪列 DELETE FROM your tab
  • 调用我的过程时参数数量或类型错误

    您好 我编写了这段代码来创建一个过程 根据 if 条件返回布尔值 但是当我执行它时 我收到此错误 ORA 06550 line 1 column 7 PLS 00306 wrong number or types of arguments
  • 如何使用 Java 创建多个模式连接?

    我必须使用两个数据库 DB2 Oracle 我在 DB2 数据库中有一个名为NAVID 我想使用 Java 为 Oracle 中的所有表创建相同的架构 public class automateExport static String va
  • 如何在sql中提取周数

    我有一个 varchar2 类型的转换列 其中包含以下主菜 01 02 2012 01 03 2012 etc 我使用 to date 函数将其转换为另一列中的日期格式 这是我得到的格式 01 JAN 2012 03 APR 2012 当我
  • 如何在可能为空值的字段上创建唯一索引(Oracle 11g)?

    这是包含 3 列的示例表 ID UNIQUE VALUE UNIQUE GROUP ID 我希望可以允许以下记录 1 NULL NULL 2 NULL NULL or 3 NULL 7 4 123 7 or 注意 此条件不允许unique
  • 使用 SYS_CONNECT_BY_PATH 的 Oracle 累积计数

    当我尝试对实际数据执行以下查询时 它返回了更多记录数 请帮助解决这个问题 下面是表 DM TEMP SUMMING DVC BY FW 中的实际数据 device count dmc id firmware version cg id im
  • Oracle内置函数元数据

    有没有办法获取 Oracle 内置聚合和其他功能的元数据 例如AVG STDDEV SQRT ETC 我需要知道对象 id 和参数元 In the SYS ALL OBJECTS查看我找不到任何有用的东西 我也尝试过搜索SYS ALL AR
  • simpleJdbcCall 调用 Pl/SQL 过程 -- ORA-22922 不存在的 LOB 值

    我收到此 SQLException ORA 22922 不存在的 LOB 值 我的场景是 我正在调用一个采用结构数组的过程 该结构体包含三种类型 两种是日期 一种是 Clob 当我使用 Spring 的 simpleJdbcCall 设置
  • 如何在Oracle中从表中选择列,*?

    我正在创建很多脚本 有时为了检查表是否根据我的需要进行更新 我会即时编写几个 SELECT 语句 在 SQL SERVER 中你可以这样写 SELECT Column1 FROM MY TABLE 出于可见性原因 这很有用 但是这似乎在 O
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • 验证 sql/oracle 中的电子邮件/邮政编码字段

    对于以下方面的一些建议将不胜感激 是否可以通过 oracle 中的 sql 中的某种检查约束来验证电子邮件和邮政编码字段 或者我怀疑 pl sql 带有正则表达式的这种事情 Thanks 这是电子邮件地址的正则表达式语法 包括引号 a zA
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • 具有连字符的 Oracle 正则表达式在 Windows 上给出的结果与在 Unix 上不同

    我有以下带有正则表达式的查询 select REGEXP REPLACE TEST 3304 V2 lt gt as REG from dual 当通过 SQL Plus 在Windows机器返回以下内容 SQL gt select REG
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • Oracle SQL 函数中可以有 commit 语句吗

    在 SQL 函数中使用 COMMIT 语句是否可能 有意义 从技术上来说 答案是肯定的 你can请执行下列操作 create or replace function committest return number as begin upd
  • 没有提示指令的直连接中表的顺序是否会影响性能?

    所有基于 SQL 的 RDBMS 10 年前的版本 直接连接查询 没有提示指令 中的表顺序是否会对最佳性能和内存管理产生影响 听说最后一个join应该是最大的表 您的数据库的查询优化器如何处理这种情况 回答你的问题 是的 表的顺序在连接中有
  • php oracle客户端oci8安装出现什么问题

    我尝试了安装 PHP Oracle 客户端的所有过程 1 我安装了客户端版本8和32位 2 我在php ini中取消了oci的注释 3 重新启动Wamp 4 不确定是否真的安装 但我在 php ini 中得到了引用 5 但仍然无法连接 泰汉
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con

随机推荐

  • GNU Flex 库 libfl 提供什么?

    我可以从 flex 和 bison 生成的文件编译一个程序 cc lex yy c program tab c o output 也由 cc lex yy c program tab c lfl o output 它们都运行顺利 没有任何问
  • 通过 GenericEntity> 在 RESTful Response 对象中使用 Java 泛型模板类型

    我有一个通用的 JAX RS 资源类 并且我已经定义了一个通用的findAll method public abstract class GenericDataResource
  • 为什么Complete输出模式需要聚合?

    我在 Apache Spark 2 2 中使用最新的结构化流处理并遇到以下异常 org apache spark sql AnalysisException 完整输出模式不 当流上没有流聚合时支持 数据框 数据集 为什么完整输出模式需要流式
  • 禁止访问消息以防止从 Excel 重复导入

    我正在将数据从 Excel 导入到 Access 中的现有表中 并希望抑制以下消息 我尝试使用多字段索引将新记录导入表中 并且还尝试首先导入临时表 然后将新记录附加到现有表中 然而 在这两种情况下 它仍然会弹出以下消息 我想避免用户看到该消
  • 使用 Linq 查询 Xml 文件中的记录

    以下是我的 xml 文件 我必须为每个页面和每个类型获取以逗号分隔的字符串提到的字段 请帮助了解如何继续使用 Linq 示例 如果我想为 page1 定义 Type customFields 则必须以逗号分隔输出 项目ID 员工ID 员工姓
  • 同一个Python解释器实例同时运行多个脚本?

    6 7 年前 我看到了一种在资源紧张的 env 上运行 python 的倡议 只需运行解释器一次 同时允许多个脚本同时使用它 这个想法是节省解释器启动开销并节省 RAM 是否存在类似的东西 这个问题Python 从同一个解释器同时执行多个脚
  • Scanf 漏行

    我编写了一个测试程序 它应该接受 3x3 字符矩阵并输出输入的矩阵 但是 我必须输入 4 行才能让程序生成相应的矩阵 我已经查找了 scanf 函数的问题 但我尝试过的解决方案似乎都不起作用 你能帮我解决这个问题吗 My code incl
  • Paramiko Python:IOError:[Errno 13]权限被拒绝

    问题 我可以做类似的事情吗 self sftp put sourceFilePath final destination use sudo True 我可以创建文件夹 但不能创建文件 我需要显式调用 sudo 或在 paramiko 中设置
  • 从 CSV 文件创建 Networkx 图表

    我正在尝试构建一个 NetworkX 社交网络图CSV file https github com MelissaLaurino DolphinSocialNetwork Laurino blob master test csv 我正在使用
  • java 字符串分割

    如果我想分割任意字符串的字符 考虑有间隙和无间隙 该怎么办 例如 如果我有字符串My Names James我希望每个角色都像这样 M y n a m e s etc 你是这个意思 String sentence Hello World S
  • 该方法必须重写超类方法

    最近我将计算机更新到 Ubuntu 11 10 64 位 我在导入项目时遇到问题 它给了我一个错误 方法 onView 必须重写超类方法 我在其他一些帖子中读到错误应该是使用java 1 5 但是Ubuntu 11 10附带了open 6
  • Laravel 核心方法混乱

    我一直在挖掘 Laravel 的核心 因为我想了解它是如何工作的 但我想出了一个方法 即使三天后我也无法理解 在 start php 中 应用程序与其自身绑定 到目前为止 一切都很好 但是当我检查 app gt share 方法时我迷失了
  • 将函数应用于数据框中的每一列,观察每列现有的数据类型

    我正在尝试获取大数据框中每列的最小值 最大值 作为了解我的数据 我的第一次尝试是 apply t 2 max na rm 1 它将所有内容视为字符向量 因为前几列是字符类型 所以一些数字列的最大值是 99 5 然后我尝试了这个 sapply
  • SQL 聚合函数别名

    我是 SQL 初学者 这是我被要求解决的问题 假设大城市被定义为place类型的city人口为 至少100 000 编写返回方案的 SQL 查询 state name no big city big city population 订购st
  • 无法使用 SES 接收 S3 存储桶中的电子邮件

    我正在尝试创建一个系统 其中电子邮件将发送到我公司的邮箱 并且 S3 存储桶将存储这些电子邮件 每当存储新电子邮件时 都会触发 Lambda 函数来存储电子邮件并回复发件人 第二部分 然而 我没有成功地实现第一部分 我有一个托管在 AWS
  • 在 Web API 控制器中接收 Json 反序列化对象作为字符串

    以下是我从 Ui 输入的 Json data Id 1 Id 2 Id 3 我可以在如下所示的对象结构中没有问题地接收它 public class TestController ApiController
  • 动态生成角度为2的输入字段类型并设置字段的类型

    我是 Angular 2 的新手 尝试根据使用 Angular 2 的模型动态生成一堆输入字段 有些字段是密码字段 如果是的话 我想让输入字段输入密码 我写过这样的东西 div div
  • 引用主题的原色而不是 Material UI 中的特定颜色

    使用 ReactJS 和 Material UI 我有一个项目 其中我更改了主题颜色 const newTheme getMuiTheme fontFamily Roboto sans serif palette primary1Color
  • Angular 2 和 Spring Boot - 部署到战争

    首先我要说的是 我是 Maven Spring 的新手 并且很难弄清楚当我的目录不遵循首选 Maven 结构时该怎么做 我按照说明通过 Angular 2 和 Spring Boot 设置项目tutorial https blog jdri
  • 具有多个 IN 参数的存储过程

    我得到了以下程序 create or replace PROCEDURE create indexes tbl name index IN VARCHAR2 tbl name vehicle IN VARCHAR2 tbl name dea