【发布时间】:2014-01-22 11:27:10
【问题描述】:
我是甲骨文的新手。我有一个要求,我必须将某个表的值插入到临时表中。例如,在 MSSQL 中,我曾经使用如下查询。
注意:可能会有更复杂的选择查询结果,插入到临时表中。即,以下示例中的实际表可以是任何复杂的查询。这里我刚刚提到了一个简单的例子。
SELECT columna, columnb... INTO temptable FROM actualtable where columna=? and columnb=? and ..;
在构建上述选择查询之后,我也通过在 Java 中准备语句来进行数据绑定。
在oracle中我不能像上面那样做,我必须像下面那样使用
create table temptable as select columna, columnb... from actualtable where columna=? and columnb=? and ..;
在此之后我无法进行数据绑定。如果我这样做,我会得到异常 - ORA-01027:数据定义操作不允许绑定变量。众所周知,我无法为创建表、创建视图等进行数据绑定。
我还能做什么?我无法在手头之前创建临时表。因为,我不知道临时表所有列的描述。请帮忙。提前致谢!
【问题讨论】:
-
为什么需要一个临时表?
-
我同意 Frank 的观点:在 Oracle 中,您通常不需要像在 SQL Server 中那样需要临时表(例如,您可以使用 CTE)
-
我在现有的产品框架中已经有了临时表创建逻辑。我被要求为它做数据绑定。对于 oracle 和 MSSQL。对于MSSQL,我实现了上面提到的。但是,对于甲骨文,我被困在了上面,我在上面提到过。