【问题标题】:How to use joins on Pro*C 10g?如何在 Pro*C 10g 上使用连接?
【发布时间】:2010-07-15 08:55:58
【问题描述】:

在 Pro*C 上使用内部联接时,出现以下错误:

PCC-S-02201, Encountered the symbol "inner" when expecting one of the following:

我刚刚使用了一个简单的内部连接。当我搜索解决方案时,我被告知 10g 不支持这种语法,我应该改用动态 SQL。真的吗?如何使用动态 SQL 实现内连接?

【问题讨论】:

    标签: oracle10g inner-join oracle-pro-c


    【解决方案1】:

    ProC 10g 版本不允许内部/外部联接。如果您想拥有这些,则必须升级您的 ProC 编译器。
    如果你使用,11g你可以使用这里建议的解决方案:http://forums.oracle.com/forums/thread.jspa?threadID=665519

    【讨论】:

    • 您需要 11g 和“common_parser=yes”选项,但可能会发生其他不希望的事情(取决于其他所需的设置)
    【解决方案2】:

    使用旧语法。

    代替:SELECT * FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.PK = TABLE2.FK

    使用这个:SELECT * FROM TABLE1, TABLE2 WHERE TABLE1.PK = TABLE2.FK

    对于 OUTER JOINS,只需在您希望为空的一侧使用 (+) 号:

    代替:SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.PK = TABLE2.FK

    使用这个:SELECT * FROM TABLE1, TABLE2 WHERE TABLE1.PK = TABLE2.FK (+)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多