sql - 使用主机变量向 Pro*C 中的静态 SQL 语句提供 "IN"条件?

标签 sql c oracle-pro-c

我有两个表如下:

用户表:

UserID | Name  | Age      | Address  | Tel      | Company
----------------------------------------------------------
  1    | John  | 20       | CA       | 23467    | CompanyA
  2    | Peter | 41       | DE       | 17423    | CompanyB
  3    | Marry | 37       | TH       | 74244    | CompanyC

区域表:

Area   | Status
---------------
10001  | No
10002  | No
10003  | No

我使用用户表的最后三个字段作为条件(同时3个条件)来更新区域表的状态(否 -> 是)。对每个变量使用 memcpy:

WHERE (Address, Tel, Company) IN ( (:variable1, :variable2, :variable3) )

它返回错误 1408。有什么想法吗? 此外,是否可以只使用一个主机变量并传递一个像“'CA','2347','CompanyA'”这样的字符串?

最佳答案

我不知道你可以写这样的 WHERE 子句。我认为应该是:

WHERE Address IN :var1 AND Tel IN :var2 AND Company in :var3;

关于sql - 使用主机变量向 Pro*C 中的静态 SQL 语句提供 "IN"条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35102643/

相关文章:

c - pro*C 关键字 "Execute"无法识别

oracle - Pro*C 中的 SQLCA.SQLERRD 主机数组

mysql - mysql v 3.23 中的嵌套选择

c - 将大型数组从 java 传递到 c 时出现 jni 错误

c - 打印链表的float元素显示不正确?

c - 使用 libxml2 计算 XML 中具有相同名称的标签

c - 如何在 Linux 上编译 'C' 应用程序并在 Solaris 上正常编译和运行?

SQL 查询 : how to select records, 但如果存在父记录,请选择它的最新子记录

sql - 行号重置

sql - 在 SSIS 数据流任务中从源更新目标