![](/img/trans.png)
[英]Oracle SQL Developer combine using "WITH AS", "INSERT INTO", SELECT"
[英]Oracle SQL Developer : Insert into values as select from another sql file
是否可以通過外部腳本將值從 SQL Developer 插入到 Oracle SQL 表中
INSERT
INTO TABLE_A
(
ID,
VERSION
) VALUES (@select.sql)
文件 select.sql 中的語句看起來像
SELECT ID, VERSION from TABLE_X;
這在 SQL Developer 20 中使用“作為腳本運行”(F5)(或在 PL/SQL Developer 命令窗口中,就此而言)不起作用。 如果它必須從 SQL Developer 工作,那你就不走運了。
如果您清理語法並將調用放在自己的行上,它將在 SQL*Plus 和 SQLcl 中工作。
測試插入.sql
insert into table_a
( id
, version )
@@select.sql
/
選擇.sql
select rownum, 1
from xmltable('1 to 10')
(請注意,您必須決定哪個腳本包含終止;
或/
。)
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Sep 9 11:27:40 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Last Successful login time: Wed Sep 09 2020 11:26:30 +01:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> @test_insert
10 rows created.
SQL>
SQL> l
1 insert into table_a
2 ( id
3 , version )
4 select rownum, 1
5* from xmltable('1 to 10')
按照你的說法,我認為這是不可能的。
如果你付出一些努力,這可能會奏效:
select.sql
文件位於數據庫服務器上,位於作為 Oracle 目錄對象源的目錄中,並且read
權限,則UTL_FILE
讀select.sql
,組成一個聲明(你的例子顯示只有一條線,我想有可能是有復雜的語句),並把它變成一個局部變量select.sql
文件作為只有一列的外部表insert
- 語句(請注意,您的語句是錯誤的;那里不應該有values
關鍵字)execute immediate
執行執行它(所以是的,這是動態 SQL)我願意這樣做嗎? 我不這么認為,但是 - 你可能會,現在你知道了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.