【问题标题】:Oracle SQL Query not working in .PC file (C Code)Oracle SQL 查询在 .PC 文件中不起作用(C 代码)
【发布时间】:2018-05-22 14:48:30
【问题描述】:

您好,我有以下 c 文件 ResolveClients.pc 在 ResolveClients.pc 文件中,我正在执行 Oracle SQL 选择查询

EXEC SQL AT DHDB
    SELECT  CLIENT_NO
    INTO    :TmpCNo:TmpCNoInd
    FROM    CLIENTS
    WHERE   DATE_OF_BIRTH = to_date(:DOB, 'YYYYMMDD')
    AND FIRSTNAME || ' ' || SURNAME = upper(:Name)
    AND ROWNUM < 2;

我已经声明了

VARCHAR 名称 [240]

并且 DOB 被声明为

字符 DOB [9]

Name.arr 中存储的字符串是“John Smith” 并且存储在 DOB 中的字符串是“20010916”

当我在 PL SQL Developer 中执行完全相同的查询时,我找到了记录,但我没有使用 ResolveClient.pc 找到记录

请帮助指出我在 ResolveClient.pc 代码中可能出错的地方 谢谢

【问题讨论】:

  • 我并不是真正的 pro*c 人,但看起来您正试图将 CLIENT_NO 选择为 2 个变量,:TmpCNo:TmpCNoInd。对吗?
  • 能否分享设置“Name”和“DOB”变量值的代码?

标签: oracle oracle-pro-c


【解决方案1】:

如果您的 varchar(240) 中有多余的空格导致问题,我会尝试在比较中修剪名称字段。

AND trim(FIRSTNAME || ' ' || SURNAME) = trim(upper(:Name))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 2011-05-22
    相关资源
    最近更新 更多