2010-07-15 2 views
1

При использовании внутреннего соединения на Pro * C Я получаю ошибку ниже:Как использовать соединения на Pro * C 10g?

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

Я просто использовал простой внутреннее соединение. Когда я искал решение, мне сказали, что 10g не поддерживает такой синтаксис, и вместо этого я должен использовать динамический SQL. Это правда? Как достичь внутреннего соединения с помощью динамического SQL?

ответ

1

Pro C 10g версия не допускает внутренних/внешних соединений. Если вы хотите иметь их, вам придется обновить компилятор Pro C.
Если вы используете 11g, вы можете использовать решение, предлагаемое здесь: http://forums.oracle.com/forums/thread.jspa?threadID=665519

+1

Вам нужно 11g и опция "common_parser = yes", но другие нежелательные t могут возникать завивки (в зависимости от других требуемых настроек) – ShinTakezou

0

Используйте старый синтаксис.

Вместо: SELECT * FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.PK = TABLE2.FK

Используйте это: SELECT * FROM TABLE1, TABLE2 WHERE TABLE1.PK = TABLE2.FK

Для внешних соединений использовать только знак (+) на стороне вы хотите быть обнуляемым:

Вместо: SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.PK = TABLE2.FK

Используйте это: SELECT * FROM TABLE1, TABLE2 WHERE TABLE1.PK = TABLE2.FK (+)

Смежные вопросы