gpt4 book ai didi

java - 与 Oracle 中的 SQL Server SELECT INTO 等效的语句

转载 作者:行者123 更新时间:2023-12-01 23:15:30 25 4
gpt4 key购买 nike

我是甲骨文的新手。我有一个要求,必须将某个表的值插入到临时表中。例如,在 MSSQL 中,我曾经使用如下查询。

注意:可以有更复杂的选择查询结果,插入到临时表中。即下面示例中的actualtable可以是任何复杂的查询。这里我只是举了一个简单的例子。

SELECT columna, columnb... INTO temptable FROM actualtable where columna=? and columnb=? and ..;

构建完上述选择查询后,我还通过在 Java 中准备语句来进行数据绑定(bind)。

在oracle中我不能像上面那样做,我必须使用如下

create table temptable as select columna, columnb... from actualtable where columna=? and columnb=? and ..;

此后我无法进行数据绑定(bind)。如果这样做,我会得到异常 - ORA-01027:数据定义操作不允许绑定(bind)变量。众所周知,我无法为创建表、创建 View 等进行数据绑定(bind)。

我还能做什么?我无法提前创建临时表。因为,我不知道临时表所有列的描述。请帮忙。提前致谢!

最佳答案

您可以分两步完成此操作。首先通过指定始终为 false 的 where 条件来创建包含 0 行的表:

CREATE TABLE temptable AS SELECT * FROM actualtable WHERE 1 = 0;

然后使用insert into .. select ...,这是一条DML语句,因此可以使用绑定(bind)变量:

INSERT INTO temptable SELECT * FROM actualtable WHERE where columna=? and columnb=? and ..;

关于java - 与 Oracle 中的 SQL Server SELECT INTO 等效的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21281646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com