从一个表中选取数据插入到另一个表中的Oracle SQL查询

33

我正在尝试从一个表中选择数据并将数据插入到另一个表中。

    SELECT ticker FROM tickerdb;

使用OracleSql,我正在尝试从tickerdb表中获取股票代码“GOOG”,并将t.ticker插入到stockdb表中。

从tickerdb表中选择 --> 插入到quotedb表

    INSERT INTO quotedb
    (t.ticker, q.prevclose, q.opn, q.rnge,
    q.volume, q.marketcap, q.dividend, q.scrapedate)
    VALUES (?,?,?,?,?,?,?,?,SYSDATE)
    tickerdb t inner JOIN quotedb q
    ON t.ticker = q.ticker
5个回答

62

根据 Oracle 文档,下面的查询更好地解释了它。

INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
你可以阅读这个链接 你的查询应该是这样的
//just the concept    
    INSERT INTO quotedb
    (COLUMN_NAMES) //seperated by comma
    SELECT COLUMN_NAMES FROM tickerdb,quotedb WHERE quotedb.ticker = tickerdb.ticker
注意:请确保插入和选择的列按照您的要求放置在正确的位置。
希望这可以帮到您!

2
请您更新链接,如果可能的话最好在回答中进行引用以避免此类情况。 - MHosafy

18

您可以使用

insert into <table_name> select <fieldlist> from <tables>

2
在旧的Oracle10g2中,INSERT INTO table1 SELECT * FROM table2 对我有效,其中table1和table2具有相同的表模式。 - gridtrak

8
尝试使用以下查询:
Insert into tab1 (tab1.column1,tab1.column2) 
select tab2.column1, 'hard coded  value' 
from tab2 
where tab2.column='value';

1
一个很好的示例,还展示了如何在目标表中创建硬编码值。 - Robert Smith
这对我起作用 - Andrea Girardi

4

您可以从这里获得有用的IT技术信息。

SELECT ticker
INTO quotedb
FROM tickerdb;

0

我遇到这个错误后意识到我忘记了打开连接的命令。之后它完美地运行起来了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接