在 Pro*CI 上使用内部联接时,出现以下错误:
PCC-S-02201, Encountered the symbol "inner" when expecting one of the following:
我刚刚使用了一个简单的内部连接。当我搜索解决方案时,我被告知 10g 不支持这种语法,我应该改用动态 SQL。真的吗?如何使用动态 SQL 实现内连接?
在 Pro*CI 上使用内部联接时,出现以下错误:
PCC-S-02201, Encountered the symbol "inner" when expecting one of the following:
我刚刚使用了一个简单的内部连接。当我搜索解决方案时,我被告知 10g 不支持这种语法,我应该改用动态 SQL。真的吗?如何使用动态 SQL 实现内连接?
Pro C 10g 版本不允许内部/外部连接。如果你想拥有这些,你将不得不升级你的 Pro C 编译器。
如果您使用 11g,您可以使用此处建议的解决方案:http: //forums.oracle.com/forums/thread.jspa?threadID=665519
使用旧语法。
代替: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 (+)