如何将输入参数作为以逗号分隔的字符串或 DB2 中 IN 子句的列表传递

2024-04-18

我是存储过程的新手,我有一个疑问,我需要将输入参数作为以逗号分隔的字符串或 DB2 中 IN 子句的列表传递。请参阅下面的示例程序

 CREATE PROCEDURE  TEST_SP(IN  @listofUsername)
  SPECIFIC TEST_SP DYNAMIC RESULT SETS 1
P1:BEGIN
  DECLARE CURSOR1 CURSOR WITH RETURN FOR  
  SELECT  F_NAME FROM TEST  WHERE USER_NAME IN (@listofusername);
    }
    OPEN CURSOR1;  
END P1 

请指导我, 1 如何编写上面的存储过程 2 是否可以传递任何类型的列表作为输入参数,如果可以,哪一个会提供更好的性能。


您可以创建数组数据类型,并将参数定义为该数据类型。

CREATE OR REPLACE TYPE UserList as char(10) ARRAY[100]

我选择了 char(10),因为它们在我的系统 IBM i 上就是这样的。使用适合您的任何内容,并且数组大小足以满足您的任何用途。

使用它作为过程参数的类型。

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

如何将输入参数作为以逗号分隔的字符串或 DB2 中 IN 子句的列表传递 的相关文章

  • 如何根据条件删除结果以计算平均值

    我有下面的架构 对其的快速解释是 鲍勃评分为 5 5 詹姆斯评分 1 5 梅西百货评分高达 5 5 逻辑 如果我是 A 请查找我屏蔽的所有人 查阅所有电影评论 任何留下电影评论且 personA 已屏蔽的人 请将其从计算中删除 计算电影的平
  • 将数据从电子表格迁移到 RDBMS 的策略是什么?

    这与我的另一个问题相关何时从电子表格迁移到 RDBMS https stackoverflow com questions 2395607 when to switch from spreadsheet to rdbms 决定从 Excel
  • 我可以根据多列删除数据库重复项吗?

    I 不久前问过这个问题 https stackoverflow com questions 4952250 how to delete duplicates from a database table based on a certain
  • 如何重命名 MySQL 数据库(更改架构名称)?

    如何快速重命名 MySQL 数据库 更改其架构名称 通常我只是转储数据库并使用新名称重新导入它 对于非常大的数据库来说 这不是一个选项 显然RENAME DATABASE SCHEMA db name TO new db name 做了坏事
  • 通过 SQLAlchemy 获取随机行

    如何使用 SQLAlchemy 从表中选择一个或多个随机行 这在很大程度上是一个特定于数据库的问题 我知道 PostgreSQL SQLite MySQL 和 Oracle 具有通过随机函数排序的能力 因此您可以在 SQLAlchemy 中
  • 如何在文件系统中存储图像

    目前 我已将图像 最大 6MB 作为 BLOB 存储在 InnoDB 表中 随着数据大小的增长 夜间备份变得越来越慢 阻碍了正常性能 因此 二进制数据需要进入文件系统 指向文件的指针将保存在数据库中 数据具有树状关系 main site u
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • 如何删除 Sql Server 2005 中存在的临时 SP

    我的问题很简单 如何删除临时存储过程 如果存在 这是因为当我在脚本中创建临时 SP 时 它会在第二次运行时抛出类似 数据库中已存在名为 sp name 的对象 的错误 我不想向用户显示此消息 请帮我 您的解决方案受到高度赞赏 临时进程的删除
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • 在android中创建SQLite数据库

    我想在我的应用程序中创建一个 SQLite 数据库 其中包含三个表 我将向表中添加数据并稍后使用它们 但我喜欢保留数据库 就好像第一次安装应用程序时它会检查数据库是否存在 如果存在则更新它 否则如果不存在则创建一个新数据库 此外 我正在制作
  • Dapper 或 MySql 未找到包含句号“.”的存储过程。

    我有一个简单的 C 控制台 它使用 Dapper ORM 调用本地 MySql 数据库 以执行名为的存储过程users UserCreate 但是 当运行查询时 我收到一个异常 在数据库 用户 中找不到过程或函数 UserCreate Bu
  • 巩固 Django 南迁移

    在我的项目的初始阶段 我对模型进行了很多更改 因此我最终为我的应用程序生成了很多向南迁移 在转到我的生产服务器执行迁移之前 是否可以以任何方式整合它们 这样我就不会为每个应用程序进行一百万次迁移 如果是这样 我该怎么做呢 您始终可以删除现有
  • 如何修复 pgbackups 错误:备份 url 无效?

    我正在尝试按照迁移到 Cedar 的说明进行操作 除了我进行了重大重写 因此这不是前一个应用程序的分支 而是一个单独的分支 并停留在数据库迁移步骤 我安装了 pgbackup 和 heroku postgresql 插件 但得到了这个结果
  • 如何迁移我的 Heroku 数据库?

    我试过了 heroku rake db migrate and heroku pg push 第一个给我一个 PGerror rake 中止错误 有没有办法用heroku完全重建 重置我的数据库 我似乎在他们的文档中找不到它 编辑 在此之前
  • 我可以使用 Order by 对存储过程结果进行排序吗?

    简单来说 我有这样的SQL语句 EXEC xp cmdshell tasklist 我们可以使用以下命令对结果进行排序或过滤吗order by or where Thanks 我检查了 jamietre 链接 这是完整的答案 Create
  • 如何避免连接两个表时重复

    Student Table SID Name 1 A 2 B 3 C Marks Table id mark subject 1 50 physics 2 40 biology 1 50 chemistry 3 30 mathematics
  • 如何正确设计数据库的这一部分(循环引用?)

    情况 一个公司有很多项目一个项目有很多标签一个项目只属于1家公司一个标签可以属于多个项目公司必须有权访问自己的标签 示例1 在第一张图片中 公司的所有标签都可以通过projects project tag 获得 但如果所有项目都被删除 那么
  • 如何更改phpmyadmin MySQL的IP地址?

    我在 xampp 中更改了 apache 的 IP 地址 但无法连接到 MySQL 我认为问题是我的 apache 不在我的数据库的同一网络上 我的 apache 位于 192 168 1 10 而我的 MySQL 位于 127 0 0 1

随机推荐