首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle SQL Developer :作为select从另一个sql文件插入到值中

Oracle SQL Developer :作为select从另一个sql文件插入到值中
EN

Stack Overflow用户
提问于 2020-09-09 13:32:02
回答 2查看 533关注 0票数 0

是否可以通过外部脚本将值从SQL Developer插入到Oracle SQL表中

代码语言:javascript
复制
INSERT
INTO TABLE_A
  (
    ID,
    VERSION
  ) VALUES (@select.sql)

文件select.sql中的语句如下所示

代码语言:javascript
复制
SELECT ID, VERSION from TABLE_X;
EN

回答 2

Stack Overflow用户

发布于 2020-09-09 18:30:53

这在使用'Run as script‘(F5)的SQL Developer 20中不起作用(或者在PL/SQL Developer命令窗口中,就这一点而言)。如果它必须在SQL Developer中工作,那么您就不走运了。

如果清除语法并将调用放在自己的行上,它将在SQL*Plus和SQLcl中工作。

test_insert.sql

代码语言:javascript
复制
insert into table_a
( id
, version )
@@select.sql
/

select.sql

代码语言:javascript
复制
select rownum, 1
from   xmltable('1 to 10')

(请注意,您必须决定哪个脚本包含终止;/。)

代码语言:javascript
复制
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')
票数 2
EN

Stack Overflow用户

发布于 2020-09-09 14:16:08

照你的说法,我认为这是不可能的。

如果你花点功夫,下面是可能会起作用的:

  • 如果select.sql文件位于数据库服务器上,位于作为Oracle目录对象源目录中,且
  • 如果假定运行此代码的用户对该目录具有read权限,则
  • 编写PL/SQL脚本,该脚本将使用d10读取d11,编写一条语句(您的示例仅显示一行;我猜里面可能有一些复杂的语句),并将其放入本地variable
  • alternatively,中。您甚至可以只使用一条column
  • compose - insert -语句(请注意,您的语句是错误的;不应该使用values关键字column
  • compose it there)
  • execute execute immediate (所以是的,这是动态的))将SQL)

文件用作外部表

我会想这么做吗?我不这么认为,但是-你可能会,现在你知道怎么做了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63805298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档