sql - Oracle ProC INSERT INTO VALUES ( (选择 ...) )

标签 sql oracle insert subquery oracle-pro-c

在 Oracle 10g 上运行 Pro*C。

我希望在插入语句值子句中执行子查询。该 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 能够在值计算中编译子查询:

即。

INSERT into table1 (col1) values ( (select t2.singleCol from table2 t2 where t2.priKey = :priKey) )

这是 Pro*C 的预期行为吗?或者它应该支持值子句中的子查询吗?

最佳答案

可能将子查询更改为:

( SELECT CREATED_FLAG || '.tif' from TARGET t where t.TARGET_ID = :targetID ) 

我认为我从未见过以您尝试的方式附加到子查询的内容。

关于sql - Oracle ProC INSERT INTO VALUES ( (选择 ...) ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12711271/

相关文章:

MySQL 使用 WHERE 子句直接 INSERT INTO

sql - Excel 到 Azure 数据工厂到 SQL

sql - PostgreSQL 9.5 像电子表格一样优雅的查询

sql - 为什么 SQL_PROFILE 不显示建议?

sql - 通过查询连接

sql - 关系划分-模仿 'ONLY IN'

php mysql插入条件判断

MYSQL多对多按多个值分组

sql - 在 Rails 3.2 中禁用解释

c++ - 如何在与C++连接的sql中插入数组元素?