【问题标题】:How do I compile an SQL Cobol with || operator?如何使用 || 编译 SQL Cobol操作员?
【发布时间】:2022-01-18 14:40:25
【问题描述】:

我正在尝试在 As400 系统上编译 SQLCobol 源代码,其中包含带有 || 的语句(作为 concat 运算符)。

即使 IBM DB2 规则承认 || 运算符,我的程序编译也会失败。 不知道有没有编译参数要设置。谁能帮帮我?

我的代码示例:

EXEC SQL                                                    
  INSERT INTO TABLEB                           
    (SELECT FIELD1 || " " || FIELD2  
       FROM TABLEA)                                       
END-EXEC.                

                               

编译错误是

令牌 |无效

谢谢大家

【问题讨论】:

  • 我希望它可以工作,但是如果您找不到它为什么不工作的原因,请使用 CONCAT() 作为解决方法。 IE。 CONCAT(FIELD1, CONCAT(" ", FIELD2)).

标签: sql db2 ibm-midrange cobol


【解决方案1】:

我猜这是您的终端设置的代码页问题。编译器想要的管道符号|,可能是断线¦,或者键盘上的感叹号!。试试¦!,看看其中一个是否被接受。

【讨论】:

    【解决方案2】:

    | 符号不是 EBCDIC 代码页中的不变字符之一。

    您可能会遇到翻译问题,或者甚至可能无法使用。

    最佳实践是使用文字 CONCAT 运算符。

    EXEC SQL                                                    
      INSERT INTO TABLEB                           
        (SELECT FIELD1 concat ' ' concat FIELD2  
           FROM TABLEA)                                       
    END-EXEC. 
    

    【讨论】:

    • 然后把"换成'因为"对SQL有特殊的意义。
    • @jmarkmurphy 已更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多