在Oracle 10g上运行Pro * C。Oracle ProC插入值((选择...))
我期待在插入语句值子句中执行子查询。这个sql查询是完全有效的,并且在TOAD内运行时没有问题,但Pro * C无法解析查询。
EXEC SQL INSERT INTO TARGET_ATTACHMENT
(
TARGET_ID
FILENAME
)
VALUES (
:targetID,
(SELECT CREATED_FLAG from TARGET t where t.TARGET_ID = :targetID) || '.tif'
)
如果我删除:
(SELECT (CREATED_FLAG || DISPLAY_ID) from TARGET t where t.TARGET_ID = :targetID) ||**".
的PRO * C编译器的工作和一切编译和运行正常。如果我不删除: Pro * C编译器会引发语法错误。
1>Syntax error at line 128, column 12, file d:\SVN\...\TA.pc:
1>Error at line 128, column 12 in file d:\SVN\...
1>...\TA.pc
1> (select CREATED_FLAG from target t where t.TARGET_ID = :targetID)
1>...........1
1>PCC-S-02201, Encountered the symbol "CREATED_FLAG" when expecting one of the fol
1>lowing:
1> () * + -/. @ | at, day, hour, minute, month, second, year,
这是一个问题,因为我希望PRO * C能够编译值范围内subquerys caluse:
即。
INSERT into table1 (col1) values ((select t2.singleCol from table2 t2 where t2.priKey = :priKey))
这是Pro * C的预期行为吗?还是应该支持values子句中的子查询?
我只显示一个简单的查询来显示什么打破了(在我加入子查询后)。 TARGET_ATTACHMENT表中实际插入了20多个字段,其中只有一个需要来自TARGET表的信息。 – user297500